perm filename ALLHDR.XGP[TEX,RWF]1 blob sn#537116 filedate 1980-09-19 generic text, type T, neo UTF8
/NOWRAPAROUND/LMAR=50/TMAR=50/RMAR=1700/BMAR=1/PMAR=0/XLINE=0/FONT#0=NGR13/USETI=000000583*TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX*

␈βε⎇␈↓ ∧D␈ε2Notes␈α
on␈αProgramming␈αin␈αP␈α⎇ASCAL
␈βπ(␈↓ ¬W␈ε2Robert␈αW.␈αFlo␈α␈yd
␈βπS␈↓ ¬e␈ε"Copyrigh␈α␈t␈α1980
␈βλk␈↓ ¬[␈ε"F␈α⎇all␈α1980␈αedition
␈β⊃_

␈β↓H␈↓ ↓$␈∧↓H↓$α
u
␈β↓J␈↓ ↓$␈∧↓J↓$Hα␈↓ "␈∧↓J"Hα␈↓ ↔␈∧↓J↔Hα
␈β↓V␈↓ ∧U␈ε>Pro␈α␈gr␈α␈a␈α↓m␈α␈min␈α␈g␈α∞in␈α∞Pa␈α↓s␈α␈c␈α↓al
␈β↓\␈↓ T␈ε"1
␈βα⊃␈↓ ↓$␈∧α⊃↓$α
u
␈βαO␈↓ ↓H␈ε2T␈α⎇o␈αthe␈αStuden␈α␈t
␈ββ␈↓ α␈ε"As␈αthese␈αn␈α↓otes␈αare␈αbeing␈αedited␈αfor␈αthe␈αF␈α⎇all␈αquarter␈αof␈α1979,␈αthe␈αPascal␈αlanguage
␈ββ7␈↓ ↓H␈ε"and␈αthe␈α
L␈α␈OTS␈α
DEC-20␈α
computer␈αsystem␈α
on␈α
which␈αit␈α
runs,␈α
are␈α
changing␈αfrequen␈α␈tly.
␈ββb␈↓ ↓H␈ε"If␈αthings␈α
don't␈αseem␈αto␈αw␈α␈ork␈αas␈αthey␈αha␈α␈v␈α␈e␈αbeen␈αdescribed␈αhere,␈αcheck␈αwith␈αthe␈α
Pascal
␈β∧∞␈↓ ↓H␈ε"course␈α
consultan␈α␈ts␈α
at␈αL␈α␈OTS,␈α
wh␈α↓o␈α
k␈α␈eep␈α
in␈αtouch␈α
both␈α
with␈αthe␈α
classro␈α↓om␈α
lectures␈α
and
␈β∧9␈↓ ↓H␈ε"assignmen␈α␈ts,␈αand␈αwith␈αthe␈αchanges␈α
in␈αthe␈αsystem.␈α⊂I␈αdon't␈αrecommend␈αasking␈αfor␈α
help
␈β∧d␈↓ ↓H␈ε"from␈α
L␈α␈OTS␈α∞sta{␈α∞mem␈α␈bers;␈α∞they␈α∞are␈α
v␈α␈ery␈α∞capable␈α∞and␈α
w␈α␈ell-meaning,␈α∞but␈α∞are␈α∞n␈α↓ot␈α
in
␈β¬∂␈↓ ↓H␈ε"touch␈αwith␈α
what␈αy␈α␈ou␈α
do␈αand␈α
don't␈αkn␈α↓o␈α␈w␈αon␈α
a␈αparticular␈α
da␈α␈y,␈α
and␈αwith␈αwhat␈α
w␈α␈e␈αare
␈β¬:␈↓ ↓H␈ε"trying␈αto␈αget␈αy␈α␈ou␈αto␈αlearn.
␈β¬f␈↓ α␈ε"The␈α∩purpose␈α∩of␈α∩a␈α∩programming␈α⊃assignmen␈α␈t␈α∩is␈α∩n␈α↓ot␈α∩primarily␈α∩to␈α∩get␈α∩the␈α⊃righ␈α␈t
␈βε⊃␈↓ ↓H␈ε"answ␈α␈er.␈α⊃If␈αw␈α␈e␈αask␈α
y␈α␈ou␈α\Wh␈α␈y␈αis␈α
this␈αin␈αy␈α␈our␈α
program?"␈α⊃and␈αy␈α␈ou␈αansw␈α␈er␈α
\The␈αguy␈αat
␈βε<␈↓ ↓H␈ε"L␈α␈OTS␈αsaid␈αthis␈αw␈α␈ould␈αmak␈α␈e␈αit␈αw␈α␈ork,"␈αw␈α␈e␈αand␈αy␈α␈ou␈αare␈αw␈α␈asting␈αour␈αtime.
␈βεg␈↓ 
P␈ε"Bob␈αFlo␈α␈yd
␈βπ∩␈↓ β=␈ε2\The␈αpurpose␈αof␈αcomputing␈αis␈αinsigh␈α␈t,␈αn␈α↓ot␈αn␈α␈um␈α␈bers."
␈βπ>␈↓ ¬Z␈ε"(Ancien␈α␈t␈αEastern␈αpro␈α␈v␈α␈erb)
␈β⊃_

␈β↓H␈↓ ↓$␈∧↓H↓$α
u
␈β↓J␈↓ ↓$␈∧↓J↓$Hα␈↓ α→␈∧↓Jα→Hα␈↓ ↔␈∧↓J↔Hα
␈β↓V␈↓ εI␈ε>Pro␈α␈grams
␈β↓\␈↓ ↓V␈ε"2
␈βα⊃␈↓ ↓$␈∧α⊃↓$α
u
␈βαS␈↓ ↓H␈ε>Pro␈α␈gr␈α␈a␈α↓m␈α␈s.
␈ββ↔␈↓ α␈ε"A␈ε/␈α∩program␈↓ βN␈ε"in␈α∩Pascal␈α∩is␈α∩an␈α∩order␈α∪to␈α∩the␈α∩computer,␈α∪describing␈α∩h␈α↓o␈α␈w␈α∩a␈α∩certain
␈ββC␈↓ ↓H␈ε"computation␈α∞is␈α∂to␈α∂be␈α∂carried␈α∂out.␈α_This␈α∂order␈α∂con␈α␈tains␈α∂both␈α∂information␈α∂about␈α∞the
␈ββn␈↓ ↓H␈ε"resources␈αthe␈α
computer␈α
will␈α
need␈α
to␈αperform␈α
the␈α
computation,␈α
and␈α
detailed␈αinstruc-
␈β∧→␈↓ ↓H␈ε"tions␈αabout␈αthe␈αsequence␈αof␈αinformation␈αprocessing␈αoperations␈αneeded.␈α∂This␈αinforma-
␈β∧D␈↓ ↓H␈ε"tion,␈α
and␈α	these␈α	instructions,␈α
are␈α
written␈α	in␈α	precisely␈α
de|ned␈α	n␈α↓otations,␈α
as␈ε/␈α	declarations
␈β∧o␈↓ ↓H␈ε"and␈ε/␈α∞commands␈↓ βD␈ε"respectiv␈α␈ely.␈α∃F␈α⎇or␈α∞the␈α∞m␈α↓omen␈α␈t,␈α∂all␈α∞the␈α∞programs␈α∞w␈α␈e␈α∞write␈α∞will␈α
be␈α∞of
␈β¬≠␈↓ ↓H␈ε"the␈αform
␈β¬W␈↓ βX␈ε7N
␈β¬Y␈↓ αP␈ε∃PROGRAM␈↓ βu␈ε∃(OUTPUT);
␈β¬␈␈↓ αP␈ε7D
␈βε↓␈↓ αr␈ε∃;
␈βε
␈↓ αc␈ε&1
␈βε&␈↓ αP␈ε7D
␈βε(␈↓ αr␈ε∃;
␈βε2␈↓ αc␈ε&2
␈βεP␈↓ ββ␈ε∃.
␈βεx␈↓ ββ␈ε∃.
␈βπ∨␈↓ ββ␈ε∃.
␈βπE␈↓ αP␈ε7D
␈βπG␈↓ α|␈ε∃;
␈βπP␈↓ αc␈ε,m
␈βπn␈↓ αP␈ε∃BEGIN
␈βλ∀␈↓ αP␈ε7C
␈βλ⊗␈↓ αs␈ε∃;
␈βλ ␈↓ αd␈ε&1
␈βλ<␈↓ αP␈ε7C
␈βλ>␈↓ αs␈ε∃;
␈βλG␈↓ αd␈ε&2
␈βλe␈↓ ββ␈ε∃.
␈β	
␈↓ ββ␈ε∃.
␈β	4␈↓ ββ␈ε∃.
␈β	Z␈↓ αP␈ε7C
␈β	f␈↓ αd␈ε,n
␈β
∧␈↓ αP␈ε∃END.
␈β
C␈↓ ↓H␈ε"where␈↓ α.␈ε6N␈↓ αN␈ε",␈αthe␈αname␈α
of␈αthe␈α
program,␈αcan␈αbe␈α
an␈α␈y␈αname␈αy␈α␈ou␈α
lik␈α␈e␈αmade␈α
from␈αthe␈α
English
␈β
n␈↓ ↓H␈ε"alphabet,␈αthe␈↓ β$␈ε6D␈↓ β=␈ε"'s␈αare␈αdeclarations,␈αand␈αthe␈↓ εs␈ε6C␈↓ π
␈ε"'s␈αare␈αcommands.
␈β7␈↓ ↓H␈ε2Declarations
␈βu␈↓ α␈ε"Declarations,␈α
for␈α∞the␈α
m␈α↓omen␈α␈t,␈α
will␈α
tell␈α
the␈α∞translator␈α
the␈α
names␈α
w␈α␈e␈α
plan␈α
to␈α
use
␈β ␈↓ ↓H␈ε"for␈α∂some␈α∞v␈α}ariables␈↓ βw␈ε"which␈α∂will␈α∂ha␈α␈v␈α␈e␈α∂in␈α␈teger␈α∂(wh␈α↓ole␈α∂n␈α␈um␈α␈ber)␈α∂v␈α}alues.␈α→T␈α⎇o␈α∂sa␈α␈y␈α∂that␈α∞w␈α␈e
␈βK␈↓ ↓H␈ε"plan␈α
to␈α
use␈α
three␈α
such␈α
v␈α}ariables␈α
and␈α
call␈α
them␈↓ π}␈ε",␈α
and␈↓ 	M␈ε",␈α
w␈α␈e␈α
w␈α␈ould␈α
include
␈βM␈↓ π2␈ε5J,␈α∪N␈↓ λ\␈ε5EUCL␈α␈ID
␈βv␈↓ ↓H␈ε"in␈αthe␈αprogram␈αthe␈αdeclaration
␈β
R␈↓ αX␈ε5VA␈α␈R␈α∪J,␈α∪N,␈α∪EU␈α␈CLID␈α∪:␈α∪INT␈α␈EGER
␈β∞G␈↓ ↓H␈ε2W␈α⎇rite␈αCommands
␈β∂ε␈↓ α␈ε"The␈α∞commands␈α∞will␈α∂be␈α∞of␈α∞man␈α␈y␈α∞kinds,␈α∂but␈α∞ev␈α␈ery␈α∂program␈α∞will␈α∞include␈α∞at␈α∞least
␈β∂1␈↓ ↓H␈ε"one␈α∂command␈α⊂to␈α⊂prin␈α␈t␈α∂its␈α⊂results␈α⊂so␈α⊂that␈α∂w␈α␈e␈α⊂can␈α⊂see␈α∂them.␈α≠(Most␈α⊂of␈α⊂a␈α∂program's
␈β⊃∨

␈β↓H␈↓ ↓$␈∧↓H↓$α
u
␈β↓J␈↓ ↓$␈∧↓J↓$Hα␈↓ "␈∧↓J"Hα␈↓ ↔␈∧↓J↔Hα
␈β↓V␈↓ ¬N␈ε>Pro␈α␈grams
␈β↓\␈↓ T␈ε"3
␈βα⊃␈↓ ↓$␈∧α⊃↓$α
u
␈βαO␈↓ ↓H␈ε"computation␈αwill␈αnev␈α␈er␈αbe␈α
seen␈αby␈αh␈α␈umans.␈α⊃W␈α⎇e␈αwill␈αo$en␈αha␈α␈v␈α␈e␈α
it␈αprin␈α␈t␈αn␈α↓ot␈αonly␈αthe
␈βαz␈↓ ↓H␈ε"|nal␈αresults␈αw␈α␈e␈αw␈α␈an␈α␈t,␈αbut␈αsome␈αin␈α␈termediate␈αn␈α␈um␈α␈bers␈αfor␈αchecking␈αpurposes.)
␈ββ%␈↓ α␈ε"The␈αcommand␈αwhich␈αorders␈αthe␈αcomputer␈αto␈αprin␈α␈t␈αa␈αn␈α␈um␈α␈ber,␈αsa␈α␈y␈α1979,␈αis
␈ββz␈↓ αX␈ε5WR␈α␈ITE(1979)
␈β∧K␈↓ α␈ε"If␈α⊃w␈α␈e␈α⊂w␈α␈an␈α␈t␈α⊃to␈α⊂prin␈α␈t␈α⊃sev␈α␈eral␈α⊂n␈α␈um␈α␈bers,␈α∩w␈α␈e␈α⊃include␈α⊂them␈α⊃all␈α⊂in␈α⊃the␈α⊂paren␈α␈theses,
␈β∧v␈↓ ↓H␈ε"separated␈αby␈αcommas.␈α⊂The␈αcommand
␈β¬K␈↓ αX␈ε5WR␈α␈ITE(1776,␈α∩1979,␈α∪1984␈α␈)
␈βε≤␈↓ ↓H␈ε"will␈αmak␈α␈e␈αthe␈αcomputer␈αprin␈α␈t
␈βεq␈↓ αX␈ε517␈α␈76␈α∪1979␈α∪19␈α␈84
␈βπB␈↓ α␈ε"If␈α
w␈α␈e␈αdon't␈α
kn␈α↓o␈α␈w␈α
the␈αactual␈α
n␈α␈um␈α␈ber␈αw␈α␈e␈α
w␈α␈an␈α␈t␈α
prin␈α␈ted,␈αbut␈α
do␈αkn␈α↓o␈α␈w␈α
an␈α
expression
␈βπm␈↓ ↓H␈ε"for␈αit,␈αfor␈αexample␈αas␈αa␈αsum␈αor␈αproduct␈αof␈αother␈αn␈α␈um␈α␈bers,␈αw␈α␈e␈αcan␈αuse␈αthat␈αexpression
␈βλ_␈↓ ↓H␈ε"in␈αthe␈αprin␈α␈ting␈αcommand:
␈βλm␈↓ αX␈ε5WR␈α␈ITE(3+5,␈α∪2␈α␈2/7,␈α∪SIN(3␈α␈.1415927/4␈α␈))
␈β	>␈↓ ↓H␈ε"orders␈αthe␈αcomputer␈αto␈αprin␈α␈t
␈β
∪␈↓ αX␈ε58␈α∩3.14285713␈α␈4␈α∪7.071067␈α␈690E-01
␈β
d␈↓ α␈ε"If␈αw␈α␈e␈α
w␈α␈an␈α␈t␈αmessages␈αin␈α␈terspersed␈α
with␈αthe␈αprin␈α␈ted␈α
n␈α␈um␈α␈bers,␈αw␈α␈e␈αcan␈αenclose␈α
them
␈β∂␈↓ ↓H␈ε"in␈α∂quotation␈α⊂marks␈↓ ∧C␈ε",␈α⊃otherwise␈α∂treating␈α⊂them␈α∂lik␈α␈e␈α⊂the␈α⊂n␈α␈um␈α␈bers␈α∂in␈α⊂the␈α∂prin␈α␈ting
␈β⊃␈↓ ∧
␈ε5'␈α∪'
␈β:␈↓ ↓H␈ε"command:
␈β∂␈↓ αX␈ε5WR␈α␈ITE('PI␈α∪IS␈α∩ABOUT',22␈α␈/7,'THE␈α∪U.␈α␈S.␈α∪IS',197␈α␈9-1776,'YE␈α␈ARS␈α∪OLD')
␈β`␈↓ ↓H␈ε"orders␈αthe␈αcomputer␈αto␈αprin␈α␈t:
␈β
5␈↓ αX␈ε5PI␈α∩IS␈α∪ABOUT␈α∩3.14285713␈α␈4␈α∪THE␈α∪U.S.␈α∩IS␈α∪203␈α∪YE␈α␈ARS␈α∪OLD
␈β∞ε␈↓ ↓H␈ε"(Notice␈α⊂that␈α∂the␈α⊂computer␈α⊂is␈α⊂sa␈α␈ying␈α⊂these␈α⊂things␈α⊂because␈α⊂it␈α⊂has␈α⊂been␈α⊂told␈α⊂to,␈α⊂n␈α↓ot
␈β∞1␈↓ ↓H␈ε"because␈αthey␈αare␈αtrue.␈α⊂Computers␈αare␈αn␈α↓ot␈αin␈α␈terested␈αin␈αtruth.)
␈β∞\␈↓ α␈ε"If␈α∞w␈α␈e␈α∞w␈α␈an␈α␈t␈α∞to␈α∞prin␈α␈t␈α∞information␈α
on␈α∞sev␈α␈eral␈α∞lines,␈α∂w␈α␈e␈α∞can␈α
use␈α∞the␈↓ (␈ε"com-
␈β∞↑␈↓ 
⊗␈ε5WRITELN
␈β∂λ␈↓ ↓H␈ε"mand.␈α∂A$er␈αλa␈↓ ∧2␈ε",␈α	subsequen␈α␈t␈α	prin␈α␈ting␈α	will␈α	start␈αλon␈α	a␈α	new␈α	line.␈α∂A␈α	sh␈α↓ort␈αλprogram
␈β∂
␈↓ β.␈ε5WRITELN
␈β∂3␈↓ ↓H␈ε"using␈↓ β*␈ε":
␈β∂5␈↓ α&␈ε5WR␈α␈ITELN
␈β⊃∨

␈β↓H␈↓ ↓$␈∧↓H↓$α
u
␈β↓J␈↓ ↓$␈∧↓J↓$Hα␈↓ α→␈∧↓Jα→Hα␈↓ ↔␈∧↓J↔Hα
␈β↓V␈↓ εI␈ε>Pro␈α␈grams
␈β↓\␈↓ ↓V␈ε"4
␈βα⊃␈↓ ↓$␈∧α⊃↓$α
u
␈βαN␈↓ α≥␈ε∃PROGRAM␈↓ β%␈ε∃TABLE;
␈βαu␈↓ α≥␈ε∃BEGIN
␈ββ≥␈↓ α≥␈ε∃WRITELN('SHORT␈↓ ∧≤␈ε∃TABLE␈↓ ¬α␈ε∃OF␈↓ ¬5␈ε∃PERFECT␈↓ ε=␈ε∃SQUARES');
␈ββD␈↓ α≥␈ε∃WRITELN(1*1,␈↓ βz␈ε∃2*2,␈↓ ∧O␈ε∃3*3,␈↓ ¬$␈ε∃4*4,␈↓ ¬y␈ε∃5*5);
␈ββl␈↓ α≥␈ε∃WRITE(6*6,␈↓ βX␈ε∃7*7,␈↓ ∧-␈ε∃8*8,␈↓ ¬α␈ε∃9*9,␈↓ ¬W␈ε∃10*10)
␈β∧∀␈↓ α≥␈ε∃END.
␈β∧P␈↓ ↓H␈ε"will␈αprin␈α␈t␈αthis:
␈β¬∂␈↓ ↓H␈∧¬∂↓Hα
-
␈β¬⊃␈↓ ↓H␈∧¬⊃↓Hλα␈↓ s␈∧¬⊃sλα
␈β¬_␈↓ ↓H␈∧¬_↓Hα
-
␈β¬'␈↓ α≥␈ε∃SHORT␈↓ ββ␈ε∃TABLE␈↓ βi␈ε∃OF␈↓ ∧≤␈ε∃PERFECT␈↓ ¬$␈ε∃SQUARES
␈β¬O␈↓ α.␈ε∃1␈↓ αr␈ε∃4␈↓ β6␈ε∃9␈↓ βi␈ε∃16␈↓ ∧>␈ε∃25
␈β¬v␈↓ α≥␈ε∃36␈↓ αa␈ε∃49␈↓ β%␈ε∃64␈↓ βi␈ε∃81␈↓ ∧-␈ε∃100
␈βε1␈↓ ↓H␈∧ε1↓Hα
-
␈βε3␈↓ ↓H␈∧ε3↓Hλα␈↓ s␈∧ε3sλα
␈βε:␈↓ ↓H␈∧ε:↓Hα
-
␈βεI␈↓ ↓H␈ε"(W␈α⎇e␈α∞shall␈α∂use␈α∂these␈α∞bo␈α␈xes␈α∂around␈α∞the␈α∂results␈α∂from␈α∞a␈α∂program␈α∂when␈α∞the␈α∂results␈α∞use
␈βεt␈↓ ↓H␈ε"m␈α↓ore␈αthan␈αone␈αline.)
␈βπ∨␈↓ α␈ε"(The␈α
asterisk,␈↓ ∧ε␈ε",␈α∞is␈α
used␈α∞as␈α
a␈α
m␈α␈ultiplication␈α∞sym␈α␈bol␈α
in␈α∞Pascal.␈α∀The␈α
m␈α↓ore␈α
tradi-
␈βπ!␈↓ βs␈ε5*
␈βπJ␈↓ ↓H␈ε"tional␈ε6␈α∞α␈ε"␈α∞and␈ε6␈α∞↓␈ε"␈α∂are␈α∞to␈α↓o␈α∞easily␈α∞confused␈α∂with␈α∞the␈α∞letter␈α∞and␈α∞the␈α∂decimal␈α∞poin␈α␈t␈α∞to␈α∞be
␈βπv␈↓ ↓H␈ε"satisfactory␈αin␈αcomputer␈αlanguages.)
␈βλ!␈↓ α␈ε"The␈α
occurences␈αof␈α
expressions␈α
in␈αprin␈α␈ting␈α
commands␈α
are␈αcalled␈ε/␈α
operands␈↓ 
|␈ε"of␈α
these
␈βλL␈↓ ↓H␈ε"commands.
␈βλw␈↓ α␈ε"W␈α⎇e␈αma␈α␈y␈α
use␈↓ ∧←␈ε"all␈αby␈αitself␈α
as␈αa␈α
command␈αto␈α
end␈αa␈α
line␈αin␈α
the␈αoutput.␈α∂The
␈βλy␈↓ βQ␈ε5WR␈α␈ITELN
␈β	"␈↓ ↓H␈ε"command␈↓ ∧Z␈ε"means␈αthe␈αsame␈αas
␈β	$␈↓ αl␈ε5WR␈α␈ITELN(A,B)
␈β	`␈↓ αP␈ε∃WRITE(A,B);
␈β
λ␈↓ αP␈ε∃WRITELN
␈β
D␈↓ α␈ε"The␈α∂information␈α∂\prin␈α␈ted"␈α∂by␈α∂the␈↓ π(␈ε"and␈↓ 	¬␈ε"commands␈α∂does␈α∞n␈α↓ot␈α∂go
␈β
F␈↓ ε;␈ε5WRIT␈α␈E␈↓ πq␈ε5WRITELN
␈β
p␈↓ ↓H␈ε"directly␈α⊃to␈α⊃the␈α⊃prin␈α␈ter.␈α Rather,␈α∩it␈α∩is␈α⊃k␈α␈ept␈α⊃in␈α⊃the␈α⊃Pascal␈α∩program␈α⊃in␈α⊃a␈α⊃|le␈α⊃called
␈β≠␈↓ ↓H␈ε"OUTPUT,␈αand␈αev␈α␈en␈α␈tually␈αsen␈α␈t␈αto␈αa␈αdestination␈αspeci|ed␈αby␈αthe␈αuser␈αof␈αthe␈αprogram.
␈βF␈↓ ↓H␈ε"When␈αthe␈α
program␈αis␈α
executed,␈αit␈α
starts␈αby␈α
asking␈αwhere␈α
y␈α␈ou␈αw␈α␈an␈α␈t␈αthe␈α
output␈αsen␈α␈t.
␈βq␈↓ ↓H␈ε"If␈α
y␈α␈ou␈α∞w␈α␈an␈α␈t␈α∞only␈α∞to␈α∞see␈α∞the␈α
output␈α∞on␈α∞the␈α∞terminal␈α∞screen,␈α∞reply␈α∞TTY:␈α∞follo␈α␈w␈α␈ed␈α
by
␈β≤␈↓ ↓H␈ε"a␈α
carriage␈α
return.␈α∀(TTY,␈α∞standing␈α
for␈α∞\telet␈α␈ype,"␈α
refers␈α∞to␈α
a␈α
terminal,␈α∞ev␈α␈en␈α
th␈α↓ough
␈βH␈↓ ↓H␈ε"few␈α∞terminals␈α∂are␈α∞telet␈α␈ype␈α∂machines␈α∂an␈α␈y␈α∞m␈α↓ore.␈α_Notice␈α∂that␈α∞y␈α␈ou␈α∂m␈α␈ust␈α∞t␈α␈ype␈α∂the␈α∞\:"
␈βs␈↓ ↓H␈ε"follo␈α␈wing␈α∩TTY.)␈α∪If␈α∩y␈α␈ou␈α∩w␈α␈an␈α␈t␈α∪the␈α∩output␈α∪to␈α∩go␈α∪to␈α∩a␈α∪|le␈α∩in␈α∪y␈α␈our␈α∩directory␈α∩called
␈β
≡␈↓ ↓H␈ε"MYPR␈α␈OG.OUT,␈αt␈α␈ype␈αthat␈α|lename␈αin,␈αfollo␈α␈w␈α␈ed␈αby␈αa␈αcarriage␈αreturn.
␈β
I␈↓ α␈ε"A$er␈α∪the␈α∪program␈α∪is␈α∪executed,␈α∀y␈α␈ou␈α∪can␈α∪inspect␈α∪the␈α∪results␈α∪with␈α∪the␈α∩TYPE
␈β
t␈↓ ↓H␈ε"command,␈αor␈αprin␈α␈t␈αit␈αout␈αon␈αpaper␈αwith␈αthe␈αPRINT␈αcommand.␈α⊂If␈αy␈α␈ou␈αgiv␈α␈e␈αPascal␈αn␈α↓o
␈β∞ ␈↓ ↓H␈ε"|lename␈α(by␈αjust␈α
t␈α␈yping␈αa␈αcarriage␈α
return),␈αthe␈αoutput␈α
will␈αgo␈αin␈αy␈α␈our␈α
directory␈αin␈αa
␈β∞K␈↓ ↓H␈ε"|le␈αcalled␈αOUTPUT.
␈β⊃_

␈β↓H␈↓ ↓$␈∧↓H↓$α
u
␈β↓J␈↓ ↓$␈∧↓J↓$Hα␈↓ "␈∧↓J"Hα␈↓ ↔␈∧↓J↔Hα
␈β↓V␈↓ ¬V␈ε>Iterati␈α␈on
␈β↓\␈↓ T␈ε"5
␈βα⊃␈↓ ↓$␈∧α⊃↓$α
u
␈βα\␈↓ ↓H␈ε>Iterati␈α␈on.
␈ββ∨␈↓ α␈ε"Our␈α⊂last␈α⊂example␈α∂could␈α⊂as␈α⊂w␈α␈ell␈α⊂ha␈α␈v␈α␈e␈α∂been␈α⊂done␈α⊂by␈α⊂a␈α∂hand␈α⊂calculator␈α⊂as␈α⊂by␈α∂a
␈ββJ␈↓ ↓H␈ε"computer,␈α∞since␈α∞w␈α␈e␈α∞had␈α
to␈α∞write␈α∞a␈α∞separate␈α∞form␈α␈ula␈α
for␈α∞each␈α∞n␈α␈um␈α␈ber␈α∞w␈α␈e␈α∞w␈α␈an␈α␈ted␈α
to
␈ββv␈↓ ↓H␈ε"prin␈α␈t.␈α∀Since␈α
there␈α∞w␈α␈as␈α
a␈α∞general␈α
pattern␈α∞to␈α
all␈α
these␈α∞form␈α␈ulas,␈α∞it␈α
w␈α␈ould␈α∞be␈α
better␈α
if
␈β∧!␈↓ ↓H␈ε"w␈α␈e␈α∞could␈α∞write␈α∞a␈α∞command␈α∞that␈α∞w␈α␈ould␈α∞brie⎇y␈α∞describe␈α∞this␈α∞general␈α∂pattern.␈α⊗If,␈α∞for
␈β∧L␈↓ ↓H␈ε"example,␈α∂w␈α␈e␈α∞w␈α␈an␈α␈ted␈α∞to␈α∂write␈α∞the␈α∞|rst␈α∂100␈α∞square␈α∞ro␈α↓ots␈α∂on␈α∞separate␈α∞lines,␈α∂w␈α␈e␈α∞could
␈β∧w␈↓ ↓H␈ε"use␈αthese␈αcommands:
␈β¬5␈↓ α≥␈ε∃WRITELN(SQRT(1));
␈β¬]␈↓ α≥␈ε∃WRITELN(SQRT(2));
␈βε¬␈↓ α≥␈ε∃WRITELN(SQRT(3));
␈βε,␈↓ α≥␈ε∃.
␈βεT␈↓ α≥␈ε∃.
␈βε{␈↓ α≥␈ε∃.
␈βπ#␈↓ α≥␈ε∃WRITELN(SQRT(100))
␈βπa␈↓ α␈ε"There␈αare␈αt␈α␈w␈α␈o␈αelemen␈α␈ts␈αin␈αthe␈αpattern:
␈βλ
␈↓ ↓Z␈ε6∂␈↓ ↓}␈ε"Ev␈α␈ery␈αcommand␈αis␈αof␈αthe␈αform
␈βλg␈↓ βD␈ε5WR␈α␈ITELN(SQRT␈α␈(I))
␈β	>␈↓ α4␈ε"for␈αsome␈αn␈α␈um␈α␈ber␈↓ ∧[␈ε".
␈β	@␈↓ ∧H␈ε5I
␈β	i␈↓ ↓Z␈ε6∂␈↓ ↓}␈ε"The␈α
series␈αof␈αv␈α}alues␈αthat␈↓ ¬#␈ε"tak␈α␈es␈α
on␈αstarts␈αwith␈α1,␈αalw␈α␈a␈α␈ys␈αincreases␈αby␈α1,␈αand␈α
ends
␈β	k␈↓ ¬¬␈ε5I
␈β
∃␈↓ α4␈ε"at␈α100.
␈β
@␈↓ α␈ε"W␈α⎇e␈αha␈α␈v␈α␈e␈αcompletely␈αdescribed␈αthe␈αpattern.␈α⊂W␈α⎇e␈αcan␈αsa␈α␈y␈αthe␈αsame␈αthing␈αin␈αPascal
␈β
l␈↓ ↓H␈ε"with␈αthe␈αprogram
␈β*␈↓ α≥␈ε∃PROGRAM␈↓ β%␈ε∃ITERATE(OUTPUT);
␈βQ␈↓ αa␈ε∃VAR␈↓ β%␈ε∃I␈↓ βG␈ε∃:␈↓ βi␈ε∃INTEGER;
␈βy␈↓ α≥␈ε∃BEGIN
␈β!␈↓ αa␈ε∃FOR␈↓ β%␈ε∃I␈↓ βG␈ε∃:=␈↓ βz␈ε∃1␈↓ ∧≤␈ε∃TO␈↓ ∧O␈ε∃100␈↓ ¬∪␈ε∃DO
␈βH␈↓ β%␈ε∃WRITELN(SQRT␈↓ ¬α␈ε∃(I)␈↓ ¬F␈ε∃)
␈βp␈↓ α≥␈ε∃END.
␈β
.␈↓ α␈ε"Here␈α	the␈αλsecond␈α	line␈α	is␈α	a␈αλdeclaration␈α	for␈α	the␈αλv␈α}ariable␈↓ λA␈ε",␈α	specifying␈αλthat␈α	the␈α	v␈α}alue␈αλof
␈β
0␈↓ λ.␈ε5I
␈β
Y␈↓ ↓f␈ε"can␈αbe␈αan␈α␈y␈αin␈α␈teger␈α(wh␈α↓ole␈αn␈α␈um␈α␈ber).␈α⊂The␈αfourth␈αline␈αis␈αan␈ε/␈αiterativ␈α␈e␈αclause␈↓ 
k␈ε",␈αcausing
␈β
[␈↓ ↓H␈ε5I
␈β∞∧␈↓ ↓H␈ε"the␈α⊂immediately␈α⊂follo␈α␈wing␈α⊂command␈α⊂to␈α⊃be␈α⊂repeated.␈α≤It␈α⊃also␈α⊂giv␈α␈es␈↓ 
'␈ε"the␈α⊂v␈α}alues␈α⊂1,
␈β∞ε␈↓ 
∧␈ε5I
␈β∞/␈↓ ↓H␈ε"2,␈α∂3,␈↓ α∨␈ε".␈αε.␈αε.␈↓ αO␈ε",␈α∂99,␈α⊂100␈α∂for␈α∞the␈α∂successiv␈α␈e␈α∂repetitions,␈α⊂then␈α∞quits.␈α→Such␈α∂commands␈α∞mak␈α␈e
␈β∞[␈↓ ↓H␈ε"possible␈α∞the␈α∞e{ectiv␈α␈e␈α∞use␈α∞of␈α∂the␈α∞v␈α}ast␈α∞speed␈α∞of␈α∞presen␈α␈t-da␈α␈y␈α∂computers,␈α∞by␈α∞specifying
␈β∂ε␈↓ ↓H␈ε"v␈α␈ery␈αconcisely␈αa␈αlarge␈αn␈α␈um␈α␈ber␈αof␈αsimilar␈αoperations.␈α⊂(W␈α⎇e␈αshall␈αlater␈αsh␈α↓o␈α␈w␈αother␈αt␈α␈ypes
␈β∂1␈↓ ↓H␈ε"of␈αiterativ␈α␈e␈α
clause.)␈α∪A␈αsigni|can␈α␈t␈α
part␈α
of␈α
the␈α
computer␈αprogrammer's␈α
task␈α
is␈α
to␈α|nd
␈β⊃∨

␈β↓H␈↓ ↓$␈∧↓H↓$α
u
␈β↓J␈↓ ↓$␈∧↓J↓$Hα␈↓ α→␈∧↓Jα→Hα␈↓ ↔␈∧↓J↔Hα
␈β↓V␈↓ εQ␈ε>Iterati␈α␈on
␈β↓\␈↓ ↓V␈ε"6
␈βα⊃␈↓ ↓$␈∧α⊃↓$α
u
␈βαO␈↓ ↓H␈ε"a␈αw␈α␈a␈α␈y␈αof␈αviewing␈αa␈α
particular␈αproblem␈αas␈αa␈αseries␈α
of␈αsimilar␈αoperations␈αwhich␈αcan␈αbe
␈βαz␈↓ ↓H␈ε"expressed␈αas␈αan␈αiteration.
␈ββ%␈↓ α␈ε"Henceforth,␈αw␈α␈e␈α
shall␈α
o$en␈α
omit␈α
the␈α
|rst␈α
part␈α(through␈↓ 	?␈ε")␈α
and␈α
the␈αlast␈α
\␈↓ b␈ε""
␈ββ'␈↓ λa␈ε5BE␈α␈GIN␈↓ *␈ε5END
␈ββP␈↓ ↓H␈ε"line␈α∂of␈α∞a␈α∂program,␈α⊂in␈α∂order␈α∂to␈α∂sa␈α␈v␈α␈e␈α∂space.␈α_It␈α∂m␈α␈ust␈α∂be␈α∂included␈α∂when␈α∂a␈α∂program␈α∞is
␈ββ|␈↓ ↓H␈ε"executed.
␈β∧'␈↓ α␈ε"Generally,␈α
if␈↓ β]␈ε6V␈↓ ∧ε␈ε"is␈α
an␈αin␈α␈teger␈α
v␈α}ariable,␈↓ εg␈ε6E␈↓ π_␈ε"and␈↓ π←␈ε6E␈↓ λ∂␈ε"are␈α
expressions␈α
with␈αn␈α␈umerical
␈β∧3␈↓ εz␈ε%1␈↓ πr␈ε%2
␈β∧R␈↓ ↓H␈ε"v␈α}alues,␈αand␈↓ ββ␈ε6C␈↓ β%␈ε"is␈αa␈αcommand,␈αw␈α␈e␈αcan␈αwrite␈αan␈ε/␈αiterativ␈α␈e␈αcommand␈↓ 	L␈ε"of␈αthe␈αform:
␈β¬≥␈↓ β#␈ε6V␈↓ ∧␈ε6E␈↓ ∧z␈ε6E␈↓ ¬j␈ε6C
␈β¬∨␈↓ αX␈ε5FO␈α␈R␈↓ βR␈ε5:=␈↓ ∧B␈ε5TO␈↓ ¬1␈ε5DO
␈β¬*␈↓ ∧≡␈ε%1␈↓ ¬
␈ε%2
␈β¬h␈↓ ↓H␈ε"with␈αthe␈αe{ect␈αthat
␈βε∀␈↓ ↓Z␈ε6∂␈↓ ↓}␈ε6V␈↓ α&␈ε"will␈αbe␈αgiv␈α␈en␈αthe␈αv␈α}alue␈↓ ¬∪␈ε6E␈↓ ¬7␈ε",␈αand␈↓ ε∪␈ε6C␈↓ ε5␈ε"will␈αbe␈αexecuted.
␈βε ␈↓ ¬&␈ε%1
␈βε?␈↓ ↓Z␈ε6∂␈↓ ↓}␈ε6V␈↓ α&␈ε"will␈αbe␈αincreased␈αby␈α1,␈αand␈↓ ¬W␈ε6C␈↓ ¬z␈ε"will␈αbe␈αexecuted.
␈βεj␈↓ ↓Z␈ε6∂␈↓ ↓}␈ε6V␈↓ α&␈ε"will␈αagain␈αbe␈αincreased␈αby␈α1,␈αand␈↓ ε7␈ε6C␈↓ εZ␈ε"executed,␈αetc.
␈βπ∃␈↓ ↓Z␈ε6∂␈↓ ↓}␈ε"As␈αso␈α↓on␈α
as␈↓ β2␈ε6V␈↓ β[␈ε"gets␈α
larger␈αthan␈↓ ¬a␈ε6E␈↓ ε¬␈ε",␈α
the␈αprocess␈α
stops␈α(ev␈α␈en␈α
if␈↓ 	5␈ε6C␈↓ 	X␈ε"has␈αn␈α↓ot␈α
ev␈α␈en␈αbeen
␈βπ"␈↓ ¬t␈ε%2
␈βπ@␈↓ α4␈ε"executed␈αonce);␈αthe␈αiterativ␈α␈e␈αcommand␈αis␈αthen␈α|nished.
␈βπ|␈↓ ↓H␈ε2Example
␈βλ8␈↓ α≥␈ε∃FOR␈↓ αa␈ε∃A␈↓ ββ␈ε∃:=␈↓ β6␈ε∃1␈↓ βX␈ε∃TO␈↓ ∧␈ε∃4␈↓ ∧-␈ε∃DO
␈βλ`␈↓ αr␈ε∃WRITE(2␈↓ βz␈ε∃*␈↓ ∧≤␈ε∃A␈↓ ∧>␈ε∃+␈↓ ∧`␈ε∃1,␈↓ ¬∪␈ε∃2␈↓ ¬5␈ε∃*␈↓ ¬W␈ε∃A)
␈β	≤␈↓ ↓H␈ε"prin␈α␈ts:
␈β	i␈↓ αX␈ε53␈α∩2␈α∪5␈α∪4␈α∪7␈α∪6␈α∩9␈α∪8
␈β
2␈↓ ↓H␈ε"so␈αdoes:
␈β
n␈↓ α≥␈ε∃FOR␈↓ αa␈ε∃A␈↓ ββ␈ε∃:=␈↓ β6␈ε∃0␈↓ βX␈ε∃TO␈↓ ∧␈ε∃3␈↓ ∧-␈ε∃DO
␈β⊗␈↓ αr␈ε∃WRITE(2␈↓ βz␈ε∃*␈↓ ∧≤␈ε∃A␈↓ ∧>␈ε∃+␈↓ ∧`␈ε∃3,␈↓ ¬∪␈ε∃2␈↓ ¬5␈ε∃*␈↓ ¬W␈ε∃A␈↓ ¬y␈ε∃+2)
␈βY␈↓ α6␈∧Yα6αλQ
␈β[␈↓ α6␈∧[α6↓α␈↓ ¬␈∧[¬↓α
␈β`␈↓ ∧8␈ε2Rule␈αof␈αGo␈α↓od␈αProgramming␈αPractice:
␈β␈↓ αB␈ε/Inden␈α␈t␈↓ β5␈ε/the␈α∞command␈α∞which␈α∞is␈α∞repeated␈α∞by␈α∞an␈α∞iterativ␈α␈e␈α∞clause,␈α∞as␈α∞in
␈β6␈↓ αB␈ε/the␈αabo␈α␈v␈α␈e␈αexamples.
␈βf␈↓ α6␈∧fα6αλQ
␈β
␈↓ α6␈∧
α6αλQ
␈β
∞␈↓ α6␈∧
∞α6α2α␈↓ ¬␈∧
∞¬α2α
␈β
∪␈↓ ∧8␈ε2Rule␈αof␈αGo␈α↓od␈αProgramming␈αPractice:
␈β
>␈↓ αB␈ε/Use␈α∂a␈α⊂descriptiv␈α␈e␈α∂name,␈α⊂where␈α∂possible,␈α⊂for␈α⊂each␈α∂iteration␈α∂v␈α}ariable.
␈β
i␈↓ αB␈ε/O$en␈α
an␈α
iteration␈α
en␈α␈umerates␈α
the␈α∞elemen␈α␈ts␈α
of␈α
a␈α
set;␈α
if␈α∞so,␈α
a␈α
natural
␈β∞∀␈↓ αB␈ε/name␈αfor␈αthe␈αiteration␈αv␈α}ariable␈αis␈αthe␈αname␈αfor␈αan␈αelemen␈α␈t␈αof␈αthe␈αset.
␈β∞@␈↓ αB␈ε/If␈α∞the␈α∞iteration␈α∞is␈α∞en␈α␈umerating␈α∞lines␈α∞of␈α∞prin␈α␈ted␈α∞output,␈α∞the␈α∞iteration
␈β∞k␈↓ αB␈ε/v␈α}ariable␈α
migh␈α␈t␈αbe␈↓ ¬-␈ε/.␈α
If␈αit␈α
is␈αk␈α␈eeping␈α
track␈α
of␈αtime,␈α
call␈αit␈↓ 
Z␈ε/or
␈β∞m␈↓ ∧b␈ε5LI␈α␈NE␈↓ 
α␈ε5TIME
␈β∂⊗␈↓ β-␈ε/or␈↓ ∧7␈ε/.
␈β∂_␈↓ αB␈ε5CLOCK␈↓ βY␈ε5H␈α␈OURS
␈β∂?␈↓ α6␈∧∂?α6αλQ
␈β⊃_

␈β↓H␈↓ ↓$␈∧↓H↓$α
u
␈β↓J␈↓ ↓$␈∧↓J↓$Hα␈↓ "␈∧↓J"Hα␈↓ ↔␈∧↓J↔Hα
␈β↓V␈↓ ¬V␈ε>Iterati␈α␈on
␈β↓\␈↓ T␈ε"7
␈βα⊃␈↓ ↓$␈∧α⊃↓$α
u
␈βαO␈↓ ↓H␈ε2Exercise
␈βα␈␈↓ α␈ε$W␈α⎇ri␈α␈te␈α
a␈αprog␈α↓ram␈αwhic␈α␈h␈αwi␈α␈ll␈α␈,␈α
fo␈α↓r␈α
each␈α
n␈α␈umber␈α
from␈α2␈αto␈α100␈α↓,␈α
pri␈α␈n␈α␈t␈αon␈α
o␈α↓ne␈α
l␈α␈ine␈α
the␈α
n␈α␈umbe␈α␈r,␈α
its
␈ββ*␈↓ ↓H␈ε$square,␈α	its␈α
c␈α␈ube,␈α
and␈α
its␈α
square␈α
ro␈α↓ot.
␈ββb␈↓ ↓H␈ε2Exercise
␈β∧∩␈↓ α␈ε$W␈α⎇ri␈α␈te␈αa␈αprog␈α↓r␈α␈a␈α↓m␈αwhi␈α␈ch␈αwil␈α␈l␈αprin␈α␈t␈αa␈αte␈α␈m␈α↓pe␈α␈ra␈α↓t␈α␈ure␈αcon␈α␈ve␈α␈rsion␈αtable␈αfrom␈αdegree␈α␈s␈αCe␈α␈n␈α␈tigrade␈αto
␈β∧=␈↓ ↓H␈ε$de␈α␈g␈α↓r␈α␈ees␈αλF␈α}ahre␈α␈nheit␈α␈.␈α
The␈αλre␈α␈le␈α␈v␈α␈an␈α␈t␈αλf␈α↓ormul␈α␈a␈α	i␈α␈s␈↓ ε⊂␈ε*F␈↓ ε1␈ε$=␈αλ9␈↓ εg␈ε*C␈↓ ε␈␈ε$/5␈αβ+␈αβ32,␈α	whe␈α␈re␈↓ λH␈ε*C␈↓ λh␈ε$is␈αλthe␈αλCe␈α␈n␈α␈tigrade␈αλtemperature
␈β∧h␈↓ ↓H␈ε$and␈↓ α↓␈ε*F␈↓ α ␈ε$i␈α␈s␈αλthe␈απF␈α}ahrenhe␈α␈it␈απtemperature.␈αThe␈απtable␈απsh␈α↓ould␈απg␈α↓o␈αλfrom␈αλ-4␈α↓0␈απdegree␈α␈s␈αλto␈αλ50␈αλdegre␈α␈es␈αλCe␈α␈n␈α␈tigrade.
␈β¬∀␈↓ ↓H␈ε$(␈ε4W␈α⎇arning:␈ε$␈α
the␈α	f␈α↓orm␈α␈ula␈α
a␈α↓s␈α
giv␈α␈e␈α␈n␈αi␈α␈s␈α
n␈α↓ot␈αi␈α␈n␈α
the␈α
Pa␈α↓sc␈α␈al␈α
langua␈α↓ge␈α␈.)
␈β¬K␈↓ ↓H␈ε2Exercise
␈β¬{␈↓ α␈ε$W␈α⎇ri␈α␈te␈απa␈αλprogram␈αλwhic␈α␈h␈απw␈α↓i␈α␈ll␈α␈,␈απf␈α↓or␈απeac␈α␈h␈αλn␈α␈um␈α␈ber␈απfro␈α↓m␈απ1␈α↓0␈απto␈απ9␈α↓9,␈απprin␈α␈t␈απthe␈απn␈α␈um␈α␈ber␈απand␈αλi␈α␈ts␈απloga␈α↓r␈α␈ithm.
␈βε3␈↓ ↓H␈ε2Exercise
␈βεc␈↓ α␈ε$W␈α⎇ri␈α␈te␈α
a␈α
prog␈α↓ram␈α
w␈α↓hi␈α␈ch␈α
wi␈α␈ll␈α␈,␈α
for␈α
each␈α
n␈α␈um␈α␈ber␈α
i␈α␈n␈α
the␈α
se␈α␈q␈α↓ue␈α␈nce␈α
0,␈α	0␈α↓.␈α␈01␈α↓,␈α	0␈α↓.␈α␈02␈α↓,␈↓ 	z␈ε$.␈α¬.␈α∧.␈↓ 
#␈ε$,␈α
1.␈α␈0␈α↓0,␈α
pr␈α␈in␈α␈t␈α
the
␈βπ∞␈↓ ↓H␈ε$n␈α␈um␈α␈ber,␈αi␈α␈ts␈αsine␈α␈,␈αand␈αits␈αc␈α␈osine␈α␈.␈α∪Pa␈α↓s␈α␈cal␈αuse␈α␈s␈αradian␈αm␈α↓e␈α␈a␈α↓s␈α␈ure␈αfor␈αa␈α↓ngl␈α␈es.␈α∩Notic␈α␈e␈αthat␈αthe␈αi␈α␈ter␈α␈a␈α↓ti␈α␈on
␈βπ:␈↓ ↓H␈ε$v␈α}ariable␈α
must␈α
be␈αa␈αwh␈α↓ol␈α␈e␈αn␈α␈umbe␈α␈r,␈α
chang␈α↓i␈α␈ng␈αby␈α1␈αa␈α↓t␈α
each␈α
repet␈α␈iti␈α␈o␈α↓n;␈α
you␈αm␈α␈ust␈αsc␈α␈a␈α↓l␈α␈e␈α
it␈αdo␈α␈wn␈αto␈αthe
␈βπe␈↓ ↓H␈ε$de␈α␈sire␈α␈d␈α
f␈α↓r␈α␈a␈α↓c␈α␈tional␈α
n␈α␈umbe␈α␈r,␈α
by␈α
mult␈α␈ipl␈α␈icati␈α␈o␈α↓n␈α
or␈α
divi␈α␈sion.
␈βλ≤␈↓ ↓H␈ε2Exercise
␈βλE␈↓ α␈ε$W␈α⎇ri␈α␈te␈αand␈αexec␈α␈ute␈αa␈αP␈α↓asc␈α␈a␈α↓l␈αprogram␈α↓,␈αusing␈αi␈α␈ter␈α␈a␈α↓ti␈α␈on,␈αto␈αpr␈α␈in␈α␈t␈αa␈αcon␈α␈ve␈α␈rsion␈αt␈α␈a␈α↓bl␈α␈e␈αf␈α↓r␈α␈o␈α↓m␈αi␈α␈nches
␈βλi␈↓ ↓H␈ε$to␈αce␈α␈n␈α␈timete␈α␈rs␈αin␈αt␈α␈wo␈αcol␈α␈um␈α↓ns,␈αranging␈αf␈α↓rom␈αone␈αto␈α|$␈α␈y␈αi␈α␈nche␈α␈s.␈α⊃The␈αt␈α␈o␈α↓p␈αand␈αbottom␈αof␈αthe␈αtable
␈β	
␈↓ ↓H␈ε$sho␈α↓ul␈α␈d␈α
lo␈α↓ok␈αl␈α␈ik␈α␈e␈α␈:
␈β	I␈↓ ∧A␈ε$INCHE␈α↓S␈↓ ¬r␈ε$CM␈↓ εu␈ε$INCHE␈α↓S␈↓ λ&␈ε$CM
␈β	m␈↓ ∧A␈ε$1␈↓ ¬r␈ε$2.54␈↓ εu␈ε$26␈↓ λ&␈ε$66.04
␈β
⊃␈↓ ∧A␈ε$2␈↓ ¬r␈ε$5.08␈↓ εu␈ε$27␈↓ λ&␈ε$68.58
␈β
5␈↓ ∧A␈ε$.␈↓ ¬r␈ε$.␈↓ εu␈ε$.␈↓ λ&␈ε$.
␈β
Y␈↓ ∧A␈ε$.␈↓ ¬r␈ε$.␈↓ εu␈ε$.␈↓ λ&␈ε$.
␈β
⎇␈↓ ∧A␈ε$.␈↓ ¬r␈ε$.␈↓ εu␈ε$.␈↓ λ&␈ε$.
␈β!␈↓ ∧A␈ε$2␈α↓5␈↓ ¬r␈ε$63␈α↓.␈α␈50␈↓ εu␈ε$50␈↓ λ&␈ε$127␈α↓.␈α␈00
␈βh␈↓ ↓H␈ε2Exercise
␈β⊃␈↓ α␈ε$Find␈α
the␈α
ri␈α␈g␈α↓h␈α␈t␈α
e␈α␈xpressi␈α␈o␈α↓n␈↓ ∧h␈ε8E␈↓ ¬π␈ε$so␈α
that␈αt␈α␈he␈α
com␈α↓mand:
␈βE␈↓ ¬R␈ε8E
␈βF␈↓ αX␈ε⊗FOR␈α∂I␈α∂:=␈α⊂1␈α∂TO␈α∂6␈α⊂DO␈α∂WRITE␈α↓(␈↓ ¬g␈ε⊗)
␈βy␈↓ ↓H␈ε$wi␈α␈ll␈α	prin␈α␈t:
␈β
.␈↓ αX␈ε⊗7␈α∂11␈α∂15␈α⊂19␈α∂23␈α∂27
␈β
a␈↓ ↓H␈ε$Find␈α
an␈α↓other␈↓ βα␈ε8E␈↓ β!␈ε$whic␈α␈h␈α
m␈α↓ak␈α␈es␈α
it␈α
pri␈α␈n␈α␈t:
␈β∞⊗␈↓ αX␈ε⊗20␈α∂13␈α∂6␈α⊂-1␈α∂-8␈α∂-1␈α↓5
␈β∞I␈↓ ↓H␈ε$Suggest␈α
a␈α
g␈α↓e␈α␈neral␈α
rul␈α␈e.␈α
Do␈α
the␈α
sam␈α↓e␈α
thi␈α␈ng␈αfor␈α
this␈α
c␈α␈o␈α↓mm␈α↓and
␈β∞⎇␈↓ ¬R␈ε8E
␈β∞}␈↓ αX␈ε⊗FOR␈α∂I␈α∂:=␈α⊂0␈α∂TO␈α∂5␈α⊂DO␈α∂WRITE␈α↓(␈↓ ¬g␈ε⊗)
␈β∂8␈↓ ↓H␈ε$Is␈α
thi␈α␈s␈α
easie␈α␈r?
␈β⊃_

␈β↓H␈↓ ↓$␈∧↓H↓$α
u
␈β↓J␈↓ ↓$␈∧↓J↓$Hα␈↓ α→␈∧↓Jα→Hα␈↓ ↔␈∧↓J↔Hα
␈β↓V␈↓ ε␈ε>N␈α␈e␈α↓s␈α␈ted␈α∂Iterati␈α␈on
␈β↓\␈↓ ↓V␈ε"8
␈βα⊃␈↓ ↓$␈∧α⊃↓$α
u
␈βα[␈↓ ↓H␈ε>N␈α␈e␈α↓s␈α␈ted␈α∂Iterati␈α␈on.
␈ββ≡␈↓ α␈ε"The␈α⊂meaning␈α⊃of␈α⊂command␈α⊂(1)␈α⊃belo␈α␈w,␈α⊃in␈α⊃which␈α⊂an␈α⊂iterativ␈α␈e␈α⊃command␈α⊂is␈α⊂itself
␈ββI␈↓ ↓H␈ε"iterated␈α∂(such␈α∂a␈α∂command␈α⊂is␈α∂called␈α∂a␈ε/␈α∂nested␈α∂iteration␈ε"),␈α⊃is␈α∂in␈α␈terpreted␈α∂by␈α∂|rst␈α∂sub-
␈ββu␈↓ ↓H␈ε"stituting␈α
1␈αand␈α
2␈α
for␈↓ ∧+␈ε",␈α
to␈α
get␈αthe␈α
series␈α
of␈α
commands␈α
(2)␈α
and␈α
then␈α
substituting␈αthe
␈ββw␈↓ ∧_␈ε5I
␈β∧ ␈↓ ↓H␈ε"appropriate␈α∂n␈α␈um␈α␈bers␈α∞for␈↓ ∧m␈ε",␈α∂to␈α∂get␈α∂the␈α∂commands␈α∂(3).␈α→The␈α∂order␈α∂of␈α∂substitution␈↓ \␈ε"is
␈β∧"␈↓ ∧Z␈ε5J
␈β∧K␈↓ ↓H␈ε"importan␈α␈t.
␈β∧v␈↓ α␈ε"Consider␈αthe␈αcommand:
␈β¬2␈↓ ↓H␈ε∃FOR␈↓ α␈ε∃I␈↓ α.␈ε∃:=␈↓ αa␈ε∃1␈↓ ββ␈ε∃TO␈↓ β6␈ε∃2␈↓ βX␈ε∃DO␈↓ πx␈ε∃(1)
␈β¬Z␈↓ ↓{␈ε∃FOR␈↓ α?␈ε∃J␈↓ αa␈ε∃:=␈↓ β∀␈ε∃I␈↓ β6␈ε∃TO␈↓ βi␈ε∃4␈↓ ∧␈ε∃DO
␈βεα␈↓ α.␈ε∃WRITE(I/J)
␈βε=␈↓ α␈ε"First␈αw␈α␈e␈αsubstitute␈α1␈αand␈α2␈αfor␈αI;␈αthe␈αcommand␈αhas␈αthe␈αsame␈αe{ect␈αas␈αthese␈αt␈α␈w␈α␈o
␈βεh␈↓ ↓H␈ε"iterativ␈α␈e␈αcommands.
␈βπ%␈↓ ↓H␈ε∃FOR␈↓ α␈ε∃J␈↓ α.␈ε∃:=␈↓ αa␈ε∃1␈↓ ββ␈ε∃TO␈↓ β6␈ε∃4␈↓ βX␈ε∃DO␈↓ πx␈ε∃(2)
␈βπL␈↓ ↓{␈ε∃WRITE(1/J);
␈βπt␈↓ ↓H␈ε∃FOR␈↓ α␈ε∃J␈↓ α.␈ε∃:=␈↓ αa␈ε∃2␈↓ ββ␈ε∃TO␈↓ β6␈ε∃4␈↓ βX␈ε∃DO
␈βλ≠␈↓ ↓{␈ε∃WRITE(2/J)
␈βλW␈↓ α␈ε"The␈αsame␈αe{ect␈αma␈α␈y␈αbe␈αobtained,␈αin␈αturn,␈αby␈αthese␈αsev␈α␈en␈αprin␈α␈ting␈αcommands:
␈β	∪␈↓ α?␈ε∃WRITE(1/1);␈↓ πx␈ε∃(3)
␈β	;␈↓ α?␈ε∃WRITE(1/2);
␈β	b␈↓ α?␈ε∃WRITE(1/3);
␈β

␈↓ α?␈ε∃WRITE(1/4);
␈β
1␈↓ α?␈ε∃WRITE(2/2);
␈β
Y␈↓ α?␈ε∃WRITE(2/3);
␈β↓␈↓ α?␈ε∃WRITE(2/4);
␈β<␈↓ ↓H␈ε"which␈αprin␈α␈t:
␈β	␈↓ αX␈ε51.␈α␈00000␈α∪0.50␈α␈0000␈α∪0.333␈α␈333␈α∪0.2500␈α␈00␈α∪1.00000␈α∩0.666667␈α∩0.500000
␈βa␈↓ ↓H␈ε2Exercise
␈β
␈↓ α␈ε$Find␈α
the␈α
se␈α␈q␈α↓ue␈α␈nce␈α
of␈α
prin␈α␈ti␈α␈ng␈αc␈α␈o␈α↓mm␈α↓ands␈α
equiv␈α}ale␈α␈nt␈α
to
␈β
A␈↓ α≥␈ε∃FOR␈↓ αa␈ε∃K␈↓ ββ␈ε∃:=␈↓ β6␈ε∃1␈↓ βX␈ε∃TO␈↓ ∧␈ε∃3␈↓ ∧-␈ε∃DO
␈β
i␈↓ αr␈ε∃FOR␈↓ β6␈ε∃L␈↓ βX␈ε∃:=␈↓ ∧␈ε∃K␈↓ ∧-␈ε∃TO␈↓ ∧`␈ε∃3␈↓ ¬α␈ε∃DO
␈β∞⊃␈↓ β6␈ε∃WRITE(K*L)
␈β∞\␈↓ ↓H␈ε2Example
␈β∂λ␈↓ α␈ε"T␈α⎇o␈αwrite␈αa␈αprogram␈αto␈αprin␈α␈t␈αthe␈αm␈α␈ultiplication␈αtables␈αfor␈αn␈α␈um␈α␈bers␈α1␈αthrough␈α10,
␈β∂3␈↓ ↓H␈ε"as␈αsh␈α↓o␈α␈wn␈αbelo␈α␈w:
␈β⊃_

␈β↓H␈↓ ↓$␈∧↓H↓$α
u
␈β↓J␈↓ ↓$␈∧↓J↓$Hα␈↓ "␈∧↓J"Hα␈↓ ↔␈∧↓J↔Hα
␈β↓V␈↓ ¬⊃␈ε>N␈α␈e␈α↓s␈α␈ted␈α∂Iterati␈α␈on
␈β↓\␈↓ T␈ε"9
␈βα⊃␈↓ ↓$␈∧α⊃↓$α
u
␈βαT␈↓ ↓H␈∧αT↓Hα
-
␈βαU␈↓ ↓H␈∧αU↓Hλα␈↓ s␈∧αUsλα
␈βα\␈↓ ↓H␈∧α\↓Hα
-
␈βαk␈↓ αP␈ε∃1␈↓ αr␈ε∃x␈↓ β∀␈ε∃1␈↓ β6␈ε∃=␈↓ βX␈ε∃1
␈ββ∪␈↓ αP␈ε∃1␈↓ αr␈ε∃x␈↓ β∀␈ε∃2␈↓ β6␈ε∃=␈↓ βX␈ε∃2
␈ββ;␈↓ αP␈ε∃.
␈ββb␈↓ αP␈ε∃.
␈β∧
␈↓ αP␈ε∃.
␈β∧1␈↓ αP␈ε∃1␈↓ αr␈ε∃x␈↓ β∀␈ε∃10␈↓ βG␈ε∃=␈↓ βi␈ε∃10
␈β∧Y␈↓ αP␈ε∃2␈↓ αr␈ε∃x␈↓ β∀␈ε∃1␈↓ β6␈ε∃=␈↓ βX␈ε∃2
␈β¬↓␈↓ αP␈ε∃2␈↓ αr␈ε∃x␈↓ β∀␈ε∃2␈↓ β6␈ε∃=␈↓ βX␈ε∃4
␈β¬(␈↓ αP␈ε∃.
␈β¬P␈↓ αP␈ε∃.
␈β¬w␈↓ αP␈ε∃.
␈βε∨␈↓ αP␈ε∃2␈↓ αr␈ε∃x␈↓ β∀␈ε∃10␈↓ βG␈ε∃=␈↓ βi␈ε∃20
␈βεG␈↓ αP␈ε∃3␈↓ αr␈ε∃x␈↓ β∀␈ε∃1␈↓ β6␈ε∃=␈↓ βX␈ε∃3
␈βεn␈↓ αP␈ε∃.
␈βπ⊗␈↓ αP␈ε∃.
␈βπ=␈↓ αP␈ε∃.
␈βπe␈↓ αP␈ε∃3␈↓ αr␈ε∃x␈↓ β∀␈ε∃10␈↓ βG␈ε∃=␈↓ βi␈ε∃30
␈βλ
␈↓ αP␈ε∃.
␈βλ4␈↓ αP␈ε∃.
␈βλ\␈↓ αP␈ε∃.
␈β	β␈↓ αP␈ε∃10␈↓ ββ␈ε∃x␈↓ β%␈ε∃10␈↓ βX␈ε∃=␈↓ βz␈ε∃100
␈β	?␈↓ ↓H␈∧	?↓Hα
-
␈β	@␈↓ ↓H␈∧	@↓Hλα␈↓ s␈∧	@sλα
␈β	G␈↓ ↓H␈∧	G↓Hα
-
␈β	V␈↓ α␈ε"W␈α⎇e␈αcould␈αprin␈α␈t␈α(sa␈α␈y)␈αthe␈αthird␈αset␈αof␈αten␈αlines␈αby␈αthe␈αcommand
␈β
0␈↓ αX␈ε5FO␈α␈R␈α∪J␈α∪:=␈α∪1␈α∪T␈α␈O␈α∪10␈α∪DO␈α∪WR␈α␈ITELN(3,'*␈α␈',J,'=',3*␈α␈J),
␈βε␈↓ ↓H␈ε"and␈αthe␈αfourth␈αset␈αby
␈β←␈↓ αX␈ε5FO␈α␈R␈α∪J␈α∪:=␈α∪1␈α∪T␈α␈O␈α∪10␈α∪DO␈α∪WR␈α␈ITELN(4,'*␈α␈',J,'=',4*␈α␈J)
␈β5␈↓ ↓H␈ε"Generally,␈αw␈α␈e␈αma␈α␈y␈αprin␈α␈t␈αthe␈αI-th␈αgroup␈αof␈αlines␈αby␈αthe␈αcommand
␈β
∂␈↓ αX␈ε5FO␈α␈R␈α∪J␈α∪:=␈α∪1␈α∪T␈α␈O␈α∪10␈α∪DO␈α∪WR␈α␈ITELN(I,'*␈α␈',J,'=',I*␈α␈J)
␈β
d␈↓ ↓H␈ε"with␈α	the␈α	appropriate␈αλn␈α␈um␈α␈ber␈α	substituted␈α	for␈↓ π⊂␈ε".␈α	On␈α	the␈α	other␈α	hand,␈α
the␈αλen␈α␈tire␈α	program
␈β
f␈↓ ε⎇␈ε5I
␈β∞∂␈↓ ↓H␈ε"consists␈αof␈αwriting␈αgroups␈α1␈αth␈α↓ough␈α10;␈αth␈α␈us␈αthe␈αprogram␈αis
␈β∞N␈↓ α≥␈ε∃FOR␈↓ αa␈ε∃I␈↓ ββ␈ε∃:=␈↓ β6␈ε∃1␈↓ βX␈ε∃TO␈↓ ∧␈ε∃10␈↓ ∧>␈ε∃DO
␈β∞u␈↓ αr␈ε∃Print␈↓ βX␈ε∃the␈↓ ∧≤␈ε∃I-th␈↓ ∧q␈ε∃set␈↓ ¬5␈ε∃of␈↓ ¬h␈ε∃ten␈↓ ε,␈ε∃lines
␈β∂3␈↓ α␈ε"Com␈α␈bining␈αthese,␈αw␈α␈e␈αget␈αthe␈αcomplete␈αPascal␈αprogram:
␈β⊃∨

␈β↓H␈↓ ↓$␈∧↓H↓$α
u
␈β↓J␈↓ ↓$␈∧↓J↓$Hα␈↓ α→␈∧↓Jα→Hα␈↓ ↔␈∧↓J↔Hα
␈β↓V␈↓ ε␈ε>N␈α␈e␈α↓s␈α␈ted␈α∂Iterati␈α␈on
␈β↓\␈↓ ↓M␈ε"10
␈βα⊃␈↓ ↓$␈∧α⊃↓$α
u
␈βαN␈↓ αP␈ε∃PROGRAM␈↓ βX␈ε∃TABLES;
␈βαu␈↓ β∀␈ε∃VAR␈↓ βX␈ε∃I,J␈↓ ∧≤␈ε∃:␈↓ ∧>␈ε∃INTEGER;
␈ββ≥␈↓ αP␈ε∃BEGIN
␈ββD␈↓ β∀␈ε∃FOR␈↓ βX␈ε∃I␈↓ βz␈ε∃:=␈↓ ∧-␈ε∃1␈↓ ∧O␈ε∃TO␈↓ ¬α␈ε∃10␈↓ ¬5␈ε∃DO
␈ββl␈↓ βG␈ε∃FOR␈↓ ∧␈ε∃J␈↓ ∧-␈ε∃:=␈↓ ∧`␈ε∃1␈↓ ¬α␈ε∃TO␈↓ ¬5␈ε∃10␈↓ ¬h␈ε∃DO
␈β∧∀␈↓ βz␈ε∃WRITELN(I,␈↓ ¬5␈ε∃'␈↓ ¬W␈ε∃*␈↓ ¬y␈ε∃',J,␈↓ εN␈ε∃'␈↓ εp␈ε∃=␈↓ π∩␈ε∃',I*J);
␈β∧;␈↓ αP␈ε∃END.
␈β¬∂␈↓ ↓H␈ε"which␈α⊃is␈α⊃equiv␈α}alen␈α␈t␈α⊃to␈α⊃these␈α⊃programs:␈α↔(W␈α⎇e␈α⊃shall␈α⊃use␈α⊃a␈α⊃v␈α␈ertical␈α⊃line␈α⊃bet␈α␈w␈α␈een␈α⊃t␈α␈w␈α␈o
␈β¬:␈↓ ↓H␈ε"programs␈αto␈αmean␈αthat␈αthey␈αha␈α␈v␈α␈e␈αthe␈αsame␈αe{ect.)
␈βε;␈↓ πF␈∧ε;πF(α
␈βε?␈↓ αX␈ε5FO␈α␈R␈α∪J␈α∪:=␈α∪1␈α∪T␈α␈O␈α∪10␈α∪DO␈↓ πk␈ε5WRITE␈α␈LN(1,'␈α∪*␈α∪'␈α␈,1,'␈α∪=␈α∪',1␈α␈);
␈βεc␈↓ πF␈∧εcπF(α
␈βεg␈↓ αX␈ε5WR␈α␈ITELN(1,'␈α∩*␈α∪',J,'␈α∪=␈α∩',1*J);␈↓ πk␈ε5WRITE␈α␈LN(1,'␈α∪*␈α∪'␈α␈,2,'␈α∪=␈α∪',2␈α␈);
␈βπ
␈↓ πF␈∧π
πF(α
␈βπ∞␈↓ πk␈ε5WRITE␈α␈LN(1,'␈α∪*␈α∪'␈α␈,3,'␈α∪=␈α∪',3␈α␈);
␈βπ2␈↓ πF␈∧π2πF(α
␈βπ6␈↓ πk␈ε5.
␈βπZ␈↓ πF␈∧πZπF(α
␈βπ↑␈↓ πk␈ε5.
␈βλ↓␈↓ πF␈∧λ↓πF(α
␈βλ¬␈↓ πk␈ε5.
␈βλ)␈↓ πF␈∧λ)πF(α
␈βλ-␈↓ πk␈ε5WRITE␈α␈LN(1,'␈α∪*␈α∪'␈α␈,10,'␈α∪=␈α∪',␈α␈10);
␈βλP␈↓ πF␈∧λPπF(α
␈βλT␈↓ αX␈ε5FO␈α␈R␈α∪J␈α∪:=␈α∪1␈α∪T␈α␈O␈α∪10␈α∪DO␈↓ πk␈ε5WRITE␈α␈LN(2,'␈α∪*␈α∪'␈α␈,1,'␈α∪=␈α∪',2␈α␈);
␈βλx␈↓ πF␈∧λxπF(α
␈βλ|␈↓ αX␈ε5WR␈α␈ITELN(2,'␈α∩*␈α∪',J,'␈α∪=␈α∩',2*J);␈↓ πk␈ε5WRITE␈α␈LN(2,'␈α∪*␈α∪'␈α␈,2,'␈α∪=␈α∪',4␈α␈);
␈β	 ␈↓ πF␈∧	 πF(α
␈β	$␈↓ αX␈ε5.␈↓ πk␈ε5.
␈β	G␈↓ πF␈∧	GπF(α
␈β	K␈↓ αX␈ε5.␈↓ πk␈ε5.
␈β	o␈↓ πF␈∧	oπF(α
␈β	s␈↓ αX␈ε5.␈↓ πk␈ε5.
␈β
⊗␈↓ πF␈∧
⊗πF(α
␈β
~␈↓ αX␈ε5FO␈α␈R␈α∪J␈α∪:=␈α∪1␈α∪T␈α␈O␈α∪10␈α∪DO␈↓ πk␈ε5WRITE␈α␈LN(10,'␈α∪*␈α∩',1,'␈α∪=␈α∪',␈α␈10);
␈β
>␈↓ πF␈∧
>πF(α
␈β
B␈↓ αX␈ε5WR␈α␈ITELN(10,'␈α∩*␈α∪',J,'␈α∪=␈α∩',10*J);␈↓ πk␈ε5WRITE␈α␈LN(10,'␈α∪*␈α∩',2,'␈α∪=␈α∪',␈α␈20);
␈β
f␈↓ πF␈∧
fπF(α
␈β
j␈↓ πk␈ε5.
␈β
␈↓ πF␈∧
πF(α
␈β⊃␈↓ πk␈ε5.
␈β5␈↓ πF␈∧5πF(α
␈β9␈↓ πk␈ε5.
␈β\␈↓ πF␈∧\πF(α
␈β`␈↓ πk␈ε5WRITE␈α␈LN(10,'␈α∪*␈α∩',10,'␈α∪=␈α∪'␈α␈,100);
␈βo␈↓ ↓H␈ε"which␈αprin␈α␈ts
␈β
.␈↓ ↓H␈∧
.↓Hα
-
␈β
0␈↓ ↓H␈∧
0↓Hλα␈↓ s␈∧
0sλα
␈β
7␈↓ ↓H␈∧
7↓Hα
-
␈β
F␈↓ α≥␈ε∃1␈↓ α?␈ε∃*␈↓ αa␈ε∃1␈↓ ββ␈ε∃=␈↓ β%␈ε∃1
␈β
m␈↓ α≥␈ε∃1␈↓ α?␈ε∃*␈↓ αa␈ε∃2␈↓ ββ␈ε∃=␈↓ β%␈ε∃2
␈β∞∃␈↓ αa␈ε∃.
␈β∞<␈↓ αa␈ε∃.
␈β∞d␈↓ αa␈ε∃.
␈β∂␈↓ α␈ε∃10␈↓ α?␈ε∃*␈↓ αa␈ε∃10␈↓ β∀␈ε∃=␈↓ β6␈ε∃100
␈β∂G␈↓ ↓H␈∧∂G↓Hα
-
␈β∂H␈↓ ↓H␈∧∂H↓Hλα␈↓ s␈∧∂Hsλα
␈β∂O␈↓ ↓H␈∧∂O↓Hα
-
␈β⊃_

␈β↓H␈↓ ↓$␈∧↓H↓$α
u
␈β↓J␈↓ ↓$␈∧↓J↓$Hα␈↓ "␈∧↓J"Hα␈↓ ↔␈∧↓J↔Hα
␈β↓V␈↓ ¬⊃␈ε>N␈α␈e␈α↓s␈α␈ted␈α∂Iterati␈α␈on
␈β↓\␈↓ K␈ε"11
␈βα⊃␈↓ ↓$␈∧α⊃↓$α
u
␈βαO␈↓ ↓H␈ε2Pascal␈αNote:␈αHo␈α␈w␈αNum␈α␈bers␈αGet␈αPrin␈α␈ted
␈βαz␈↓ α␈ε"If␈α
I␈αis␈α
an␈α
in␈α␈teger-v␈α}alued␈α
expression,␈αprin␈α␈ting␈α
I␈α
by␈↓ 	~␈ε"alw␈α␈a␈α␈ys␈α
causes␈α
prin␈α␈ting
␈βα|␈↓ λβ␈ε5WRI␈α␈TE(I)
␈ββ%␈↓ ↓H␈ε"of␈αt␈α␈w␈α␈elv␈α␈e␈α
characters,␈α|rst␈α
a␈αn␈α␈um␈α␈ber␈αof␈αblanks,␈αthen␈αthe␈αdecimal␈αdigits␈αof␈αthe␈α
n␈α␈um␈α␈ber.
␈ββP␈↓ ↓H␈ε"F␈α⎇or␈αexample,␈α
if␈αthe␈α
v␈α}alue␈αof␈α
I␈αis␈α
-123,␈α
it␈αis␈α
prin␈α␈ted␈αas␈ε6␈α
tttttttt␈↓ 
/␈ε",␈α
where␈αeach
␈ββR␈↓ 	d␈ε5-1␈α␈23
␈ββ|␈↓ ↓H␈ε6t␈ε"␈αrepresen␈α␈ts␈αa␈αblank.
␈β∧'␈↓ α␈ε"If␈α
y␈α␈ou␈α
kn␈α↓o␈α␈w␈α
that␈α
I␈α
will␈α
n␈α↓ot␈α
require␈α
m␈α↓ore␈αthan␈α
N␈α
character␈α
positions,␈α
(including
␈β∧R␈↓ ↓H␈ε"the␈α∞min␈α␈us␈α∞sign␈α∞if␈α∞I␈α∞ma␈α␈y␈α∞be␈α∞negativ␈α␈e,␈α∂and␈α∞a␈α∞blank␈α∞if␈α∞needed␈α∞to␈α∞separate␈α∞it␈α∞from␈α∞the
␈β∧⎇␈↓ ↓H␈ε"previous␈α
output),␈α∞y␈α␈ou␈α∞can␈α∞follo␈α␈w␈α
I␈α∞by␈α∞a␈α
colon␈α∞and␈α∞N␈α
in␈α∞the␈↓ 	q␈ε"command,␈α∞and␈α
I
␈β∧␈␈↓ 	¬␈ε5W␈α␈RITE
␈β¬(␈↓ ↓H␈ε"will␈αbe␈αprin␈α␈ted␈αin␈αan␈αN-character␈α|eld.␈α⊂If␈αI␈αis␈α-123,
␈βε↓␈↓ αX␈ε5WR␈α␈ITE(I:5)
␈βεU␈↓ ↓H␈ε"prin␈α␈ts␈ε6␈αt␈↓ β∀␈ε".␈α⊂In␈αthe␈αprevious␈αexample,␈αthe␈αcommand
␈βεW␈↓ αI␈ε5-1␈α␈23
␈βπ.␈↓ αX␈ε5WR␈α␈ITELN(I:3,␈α␈'␈α∪*␈α∪',J:3,␈α␈'␈α∪=␈α∪',␈α∪I*J␈α␈:4)
␈βλα␈↓ ↓H␈ε"w␈α␈ould␈αyield␈αm␈α␈uch␈αm␈α↓ore␈αattractiv␈α␈e,␈αcompact,␈αand␈αlegible␈αresults.
␈βλC␈↓ ↓H␈ε2Exercise
␈βλl␈↓ α␈ε$Find␈α
a␈αne␈α␈sted␈α
i␈α␈terati␈α␈o␈α↓n␈α
to␈α
prin␈α␈t␈α
the␈α
n␈α␈umbe␈α␈rs
␈β	#␈↓ αX␈ε⊗10,␈α∂11,␈α⊂20,␈α∂21,␈α⊂22,␈α∂30,␈α⊂31,␈α∂32,␈α∂3␈α↓3,␈α∂40,␈α∂4␈α↓1,␈α∂42,␈α∂4␈α↓3,␈α∂44
␈β	←␈↓ ↓H␈ε$(␈ε4Hi␈α␈nt␈α␈:␈ε$␈α
B␈α↓re␈α␈a␈α↓k␈α
the␈α
s␈α␈equence␈α	up␈αi␈α␈n␈α␈to␈αgroups,␈α
and␈α|nd␈α
an␈α
ite␈α␈ra␈α↓ti␈α␈v␈α␈e␈α
com␈α↓mand␈αfor␈α
each␈α
gro␈α↓up.␈α
Lo␈α↓o␈α↓k␈α
fo␈α↓r
␈β

␈↓ ↓H␈ε$the␈α	com␈α↓m␈α↓on␈αfe␈α␈a␈α↓ture␈α␈s␈α
o␈α↓f␈α
all␈α	the␈α
ite␈α␈rativ␈α␈e␈α
c␈α␈o␈α↓mm␈α↓ands.␈α␈)
␈β
F␈↓ ↓H␈ε2Exercise
␈β
o␈↓ α␈ε$Prin␈α␈t␈α
the␈α
i␈α␈n␈α␈tegers␈α
be␈α␈tw␈α␈e␈α␈en␈α
1␈αand␈α
10␈α↓0␈α
whic␈α␈h␈αare␈ε1␈α
n␈α↓ot␈ε$␈α
per␈α␈f␈α↓e␈α␈ct␈α
squares,␈α
i␈α␈.e␈α␈.,
␈β%␈↓ εK␈ε$.␈α∧.␈α¬.
␈β&␈↓ αX␈ε⊗2␈α∂3␈α∂5␈α∂6␈α⊂7␈α∂8␈α∂10␈α∂1␈α↓1␈α∂12␈α∂13␈α⊂14␈α∂15␈α∂17␈↓ πβ␈ε⊗99
␈βb␈↓ ↓H␈ε$(T␈α⎇o␈α
the␈αte␈α␈a␈α↓c␈α␈her:␈α∞the␈α␈re␈αare␈αsev␈α␈eral␈αw␈α␈a␈α␈y␈α↓s␈αto␈αdo␈α
thi␈α␈s,␈α
e␈α␈ve␈α␈n␈α
us␈α␈ing␈α
the␈αli␈α␈m␈α↓i␈α␈ted␈αrepe␈α␈rtory␈α
of␈α
operati␈α␈o␈α↓ns
␈β
␈↓ ↓H␈ε$th␈α␈us␈α
far␈α
co␈α␈ve␈α␈red.␈α
Class␈α
di␈α␈scussi␈α␈on␈αof␈α
thei␈α␈r␈α
e}␈α↓c␈α␈ie␈α␈nci␈α␈es␈α
m␈α↓a␈α␈y␈α
be␈α
rew␈α␈arding.␈α␈)
␈β⊃_

␈β↓H␈↓ ↓$␈∧↓H↓$α
u
␈β↓J␈↓ ↓$␈∧↓J↓$Hα␈↓ α→␈∧↓Jα→Hα␈↓ ↔␈∧↓J↔Hα
␈β↓V␈↓ ¬Q␈ε>Com␈α␈pou␈α␈nd␈α∞Statements
␈β↓\␈↓ ↓M␈ε"12
␈βα⊃␈↓ ↓$␈∧α⊃↓$α
u
␈βαT␈↓ ↓H␈ε>Com␈α␈pou␈α␈nd␈α∞Statement␈α␈s.
␈ββ↔␈↓ α␈ε"Suppose␈αw␈α␈e␈αw␈α␈an␈α␈t␈αthe␈αcomputer␈αto␈αprin␈α␈t␈αa␈αlarge␈αtriangle␈αof␈αasterisks,␈αlik␈α␈e␈αthis
␈ββV␈↓ ↓H␈∧βV↓Hα
-
␈ββX␈↓ ↓H␈∧βX↓Hλα␈↓ s␈∧βXsλα
␈ββ←␈↓ ↓H␈∧β←↓Hα
-
␈ββn␈↓ α≥␈ε∃*
␈β∧∃␈↓ α≥␈ε∃**
␈β∧=␈↓ α≥␈ε∃***
␈β∧e␈↓ α≥␈ε∃****
␈β¬␈↓ α≥␈ε∃*****
␈β¬4␈↓ α≥␈ε∃******
␈β¬o␈↓ ↓H␈∧¬o↓Hα
-
␈β¬p␈↓ ↓H␈∧¬p↓Hλα␈↓ s␈∧¬psλα
␈β¬w␈↓ ↓H␈∧¬w↓Hα
-
␈βεε␈↓ ↓H␈ε"but␈α
|$␈α␈y␈αlines␈α
high.␈α∪The␈α
pattern␈α
is␈α
obvious.␈α∪Similarly,␈α
h␈α↓o␈α␈w␈α
to␈α
prin␈α␈t␈α
each␈αparticular
␈βε1␈↓ ↓H␈ε"line␈αis␈αobvious;␈αfor␈αthe␈α43rd,␈αw␈α␈e␈αneed␈αthe␈αcommands
␈βεo␈↓ α≥␈ε∃FOR␈↓ αa␈ε∃I␈↓ ββ␈ε∃:=␈↓ β6␈ε∃1␈↓ βX␈ε∃TO␈↓ ∧␈ε∃43␈↓ ∧>␈ε∃DO
␈βπ⊗␈↓ αr␈ε∃WRITE('*');
␈βπ>␈↓ α≥␈ε∃WRITELN
␈βπz␈↓ α␈ε"T␈α⎇o␈αa␈α␈v␈α␈oid␈αwriting␈α
this␈αout␈α50␈αtimes,␈αchanging␈αonly␈αthe␈α
n␈α␈um␈α␈ber␈α43,␈αw␈α␈e␈αsee␈αthat␈αit
␈βλ%␈↓ ↓H␈ε"has␈αthe␈αgeneral␈αpattern
␈βλc␈↓ α≥␈ε∃FOR␈↓ αa␈ε∃I␈↓ ββ␈ε∃:=␈↓ β6␈ε∃1␈↓ βX␈ε∃TO␈↓ ∧␈ε∃L␈↓ ∧-␈ε∃DO
␈β	
␈↓ αr␈ε∃WRITE('*');
␈β	2␈↓ α≥␈ε∃WRITELN
␈β	n␈↓ ↓H␈ε"and␈αthat␈αan␈αiterativ␈α␈e␈αclause␈αlik␈α␈e
␈β
C␈↓ αX␈ε5FO␈α␈R␈α∪L␈α∪:=␈α∪1␈α∪T␈α␈O␈α∪50␈α∪DO
␈β∀␈↓ ↓H␈ε"w␈α␈ould␈α
giv␈α␈e␈↓ β≤␈ε"the␈α
righ␈α␈t␈α
sequence␈α
of␈α
v␈α}alues.␈α∪But␈α
if␈α
w␈α␈e␈α
try␈α
putting␈α
them␈α
together␈α
in␈αa
␈β⊗␈↓ α⎇␈ε5L
␈β?␈↓ ↓H␈ε"program,
␈β|␈↓ α≥␈ε∃FOR␈↓ αa␈ε∃L␈↓ ββ␈ε∃:=␈↓ β6␈ε∃1␈↓ βX␈ε∃TO␈↓ ∧␈ε∃50␈↓ ∧>␈ε∃DO
␈β$␈↓ αr␈ε∃FOR␈↓ β6␈ε∃I␈↓ βX␈ε∃:=␈↓ ∧␈ε∃1␈↓ ∧-␈ε∃TO␈↓ ∧`␈ε∃L␈↓ ¬α␈ε∃DO
␈βL␈↓ βG␈ε∃WRITE('*');
␈βs␈↓ αr␈ε∃WRITELN
␈β
0␈↓ ↓H␈ε"w␈α␈e␈α
get,␈α∞n␈α↓ot␈α∞a␈α
triangle,␈α∞but␈α
a␈α∞n␈α␈um␈α␈ber␈α
of␈α∞solid␈α
lines␈α∞of␈α∞asterisks,␈α
totaling␈α∞1275.␈α∀Wh␈α␈y
␈β
[␈↓ ↓H␈ε"didn't␈↓ β:␈ε"get␈αλexecuted␈α	while␈↓ ¬z␈ε"w␈α␈as␈αλ1,␈α	immediately␈αλa$er␈αλexecuting␈αλthe␈↓ 
n␈ε"iteration
␈β
]␈↓ α.␈ε5WRI␈α␈TELN␈↓ ¬←␈ε5L␈↓ 
S␈ε5I
␈β∞ε␈↓ ↓H␈ε"once␈α∞and␈α∞prin␈α␈ting␈α∂one␈α∞asterisk?␈α↔The␈α∞reason␈α∂is␈α∞that␈α∞an␈α∞iterativ␈α␈e␈α∂clause␈α∞only␈α∞applies
␈β∞1␈↓ ↓H␈ε"to␈α∩the␈α∩immediately␈α∩follo␈α␈wing␈α∩command.␈α"The␈α∩iterativ␈α␈e␈α∩clause␈α∩that␈α∩uses␈↓ ∩␈ε"causes
␈β∞3␈↓ 
n␈ε5L
␈β∞\␈↓ ↓H␈ε"repetition␈αof␈αthe␈αnext␈αt␈α␈w␈α␈o␈αlines,␈αwhich␈αare␈αa␈αsingle␈αcomplete␈αcommand.␈α⊂The␈αlast␈αline
␈β∂λ␈↓ ↓H␈ε"is␈α
a␈αseparate␈α
command.␈α⊂Someh␈α↓o␈α␈w␈α
w␈α␈e␈αneed␈αto␈α
tie␈αthese␈α
t␈α␈w␈α␈o␈αcommands␈α
in␈α␈to␈αone␈α
single
␈β∂3␈↓ ↓H␈ε"command.
␈β⊃_

␈β↓H␈↓ ↓$␈∧↓H↓$α
u
␈β↓J␈↓ ↓$␈∧↓J↓$Hα␈↓ "␈∧↓J"Hα␈↓ ↔␈∧↓J↔Hα
␈β↓V␈↓ ∧V␈ε>Com␈α␈pou␈α␈nd␈α∞Statements
␈β↓\␈↓ K␈ε"13
␈βα⊃␈↓ ↓$␈∧α⊃↓$α
u
␈βαO␈↓ α␈ε"Suppose␈↓ β→␈ε6C␈↓ β@␈ε",␈↓ βJ␈ε6C␈↓ βq␈ε",...,␈↓ ∧#␈ε6C␈↓ ∧[␈ε"are␈α
an␈α␈y␈α
commands.␈α∪T␈α⎇o␈α∞form␈α
a␈α
single␈α
command␈α
which␈α
has
␈βα[␈↓ β/␈ε%1␈↓ β`␈ε%2␈↓ ∧9␈ε+n
␈βαz␈↓ ↓H␈ε"the␈α∞e{ect␈α∞of␈α∂executing␈↓ ∧9␈ε6C␈↓ ∧`␈ε",␈α∂then␈↓ ¬M␈ε6C␈↓ ¬t␈ε",␈α∂etc.,␈α∂through␈↓ πi␈ε6C␈↓ λ∪␈ε",␈α∂w␈α␈e␈α∞ma␈α␈y␈α∂write␈α∞the␈ε/␈α∞compound
␈ββε␈↓ ∧O␈ε%1␈↓ ¬d␈ε%2␈↓ π␈␈ε+n
␈ββ%␈↓ ↓H␈ε/statemen␈α␈t
␈ββy␈↓ βI␈ε6C␈↓ ∧⊗␈ε6C␈↓ ∧c␈ε".␈αε.␈αε.␈↓ ¬∨␈ε6C
␈ββ{␈↓ αX␈ε5BE␈α␈GIN␈↓ βp␈ε5;␈↓ ∧=␈ε5;␈↓ ¬]␈ε5END
␈β∧ε␈↓ β←␈ε%1␈↓ ∧,␈ε%2␈↓ ¬6␈ε+n
␈β∧N␈↓ α␈ε"The␈α∂compound␈α∂statemen␈α␈t␈α∂can␈α∂then␈α∂be␈α∞treated␈α∂as␈α∂a␈α∂wh␈α↓ole,␈α⊂for␈α∂the␈α∂purposes␈α∞of
␈β∧y␈↓ ↓H␈ε"iteration␈α
and␈α
for␈αother␈α
purposes␈αwhich␈α
w␈α␈e␈αshall␈α
encoun␈α␈ter.␈α⊂The␈α
w␈α␈ords␈↓ 
w␈ε"and
␈β∧{␈↓ 
∞␈ε5BEGIN␈↓ <␈ε5END
␈β¬$␈↓ ↓H␈ε"serv␈α␈e␈αas␈αparen␈α␈theses␈αaround␈αcommands.
␈β¬a␈↓ α6␈∧¬aα6αλQ
␈β¬c␈↓ α6␈∧¬cα6αfα␈↓ ¬␈∧¬c¬αfα
␈β¬h␈↓ ∧8␈ε2Rule␈αof␈αGo␈α↓od␈αProgramming␈αPractice:
␈βε∪␈↓ αB␈ε/T␈α⎇o␈αλmak␈α␈e␈αλthe␈αλexten␈α␈t␈αλand␈αλstructure␈αλof␈αλcompound␈αλstatemen␈α␈ts␈αλimmediate-
␈βε>␈↓ αB␈ε/ly␈α
apparen␈α␈t␈α
to␈α
the␈α
ey␈α␈e␈α
when␈α
reading␈α
programs,␈αy␈α␈ou␈α
sh␈α↓ould␈α
write␈α
com-
␈βεj␈↓ αB␈ε/pound␈α∩statemen␈α␈ts␈α∩so␈α∩that␈α∩each␈α∪command␈α∩of␈α∩the␈α∩compound␈α∩state-
␈βπ∃␈↓ αB␈ε/men␈α␈t␈αbegins␈α
on␈αa␈α
new␈αline␈α
and␈αthe␈αen␈α␈tire␈α
compound␈αstatemen␈α␈t␈α
is␈αin-
␈βπ@␈↓ αB␈ε/den␈α␈ted␈α
further␈α	than␈α
the␈α	line␈α
which␈α	precedes␈α
the␈α	compound␈α
statemen␈α␈t.
␈βπk␈↓ αB␈ε/(Notice␈α∩that␈α⊃this␈α∩rule␈α∩is␈α⊃follo␈α␈w␈α␈ed␈α∩in␈α⊃the␈α∩example␈α∩programs␈α⊃in␈α∩the
␈βλ⊗␈↓ αB␈ε/text.)
␈βλH␈↓ α6␈∧λHα6αλQ
␈β	␈↓ ↓H␈ε2Example
␈β	;␈↓ α?␈ε7V␈↓ β≥␈ε7E␈↓ ∧α␈ε7E
␈β	=␈↓ ↓{␈ε∃FOR␈↓ αj␈ε∃:=␈↓ βO␈ε∃TO␈↓ ∧3␈ε∃DO
␈β	G␈↓ β.␈ε&1␈↓ ∧∪␈ε&2
␈β	e␈↓ αP␈ε∃BEGIN
␈β
␈↓ αP␈ε7C
␈β

␈↓ αs␈ε∃;
␈β
⊗␈↓ αd␈ε&1
␈β
2␈↓ αP␈ε7C
␈β
4␈↓ αs␈ε∃;
␈β
>␈↓ αd␈ε&2
␈β
\␈↓ αP␈ε∃.
␈ββ␈↓ αP␈ε∃.
␈β+␈↓ αP␈ε∃.
␈βQ␈↓ αP␈ε7C
␈β\␈↓ αd␈ε,n
␈βz␈↓ αP␈ε∃END
␈β7␈↓ α␈ε"T␈α⎇o␈αsee␈αthe␈αdi{erence␈αthat␈αuse␈αof␈αcompound␈αstatemen␈α␈t␈αmak␈α␈es,
␈β
␈↓ ¬?␈ε6C␈↓ ε␈ε6C␈↓ εX␈ε6C
␈β

␈↓ αX␈ε5FO␈α␈R␈α∪I␈α∪:=␈α∪1␈α∪T␈α␈O␈α∪3␈α∪DO␈↓ ¬f␈ε5;␈↓ ε2␈ε5;
␈β
↔␈↓ ¬U␈ε%1␈↓ ε"␈ε%2␈↓ εn␈ε%3
␈β
←␈↓ ↓H␈ε"has␈αthe␈αe{ect␈αof␈↓ βN␈ε6C␈↓ βu␈ε";␈↓ ∧␈ε6C␈↓ ∧2␈ε";␈↓ ∧H␈ε6C␈↓ ∧o␈ε";␈↓ ¬¬␈ε6C␈↓ ¬,␈ε";␈↓ ¬B␈ε6C␈↓ ¬i␈ε",␈αbut
␈β
l␈↓ βd␈ε%1␈↓ ∧!␈ε%1␈↓ ∧↑␈ε%1␈↓ ¬≠␈ε%2␈↓ ¬X␈ε%3
␈β∞3␈↓ ε0␈ε6C␈↓ ε⎇␈ε6C␈↓ πJ␈ε6C
␈β∞5␈↓ αX␈ε5FO␈α␈R␈α∪I␈α∪:=␈α∪1␈α∪T␈α␈O␈α∪3␈α∪DO␈α∪BEG␈α␈IN␈↓ εW␈ε5;␈↓ π$␈ε5;␈↓ λ∧␈ε5E␈α␈ND
␈β∞@␈↓ εF␈ε%1␈↓ π∪␈ε%2␈↓ π`␈ε%3
␈β∂λ␈↓ ↓H␈ε"has␈α⊂the␈α∂e{ect␈α⊂of␈↓ β]␈ε6C␈↓ ∧∧␈ε";␈↓ ∧ ␈ε6C␈↓ ∧G␈ε";␈↓ ∧c␈ε6C␈↓ ¬
␈ε";␈↓ ¬&␈ε6C␈↓ ¬M␈ε";␈↓ ¬i␈ε6C␈↓ ε⊂␈ε";␈↓ ε,␈ε6C␈↓ εR␈ε";␈↓ εn␈ε6C␈↓ π∃␈ε";␈↓ π1␈ε6C␈↓ πX␈ε";␈↓ πt␈ε6C␈↓ λ≠␈ε".␈α≤Going␈α⊂back␈α⊂to␈α⊂our␈α∂triangle
␈β∂∀␈↓ βs␈ε%1␈↓ ∧6␈ε%2␈↓ ∧y␈ε%3␈↓ ¬<␈ε%1␈↓ ¬␈␈ε%2␈↓ εB␈ε%3␈↓ π¬␈ε%1␈↓ πG␈ε%2␈↓ λ
␈ε%3
␈β∂3␈↓ ↓H␈ε"problem,␈αw␈α␈e␈αsee␈αthat␈αw␈α␈e␈αneed␈αthis␈αprogram:
␈β⊃∨

␈β↓H␈↓ ↓$␈∧↓H↓$α
u
␈β↓J␈↓ ↓$␈∧↓J↓$Hα␈↓ α→␈∧↓Jα→Hα␈↓ ↔␈∧↓J↔Hα
␈β↓V␈↓ ¬Q␈ε>Com␈α␈pou␈α␈nd␈α∞Statements
␈β↓\␈↓ ↓M␈ε"14
␈βα⊃␈↓ ↓$␈∧α⊃↓$α
u
␈βαN␈↓ αP␈ε∃PROGRAM␈↓ βX␈ε∃TRIANGLE;
␈βαu␈↓ β∀␈ε∃VAR␈↓ βX␈ε∃I,␈↓ ∧␈ε∃L␈↓ ∧-␈ε∃:␈↓ ∧O␈ε∃INTEGER;
␈ββ≥␈↓ αP␈ε∃BEGIN
␈ββD␈↓ β∀␈ε∃FOR␈↓ βX␈ε∃L␈↓ βz␈ε∃:=␈↓ ∧-␈ε∃1␈↓ ∧O␈ε∃TO␈↓ ¬α␈ε∃50␈↓ ¬5␈ε∃DO
␈ββl␈↓ βX␈ε∃BEGIN
␈β∧∀␈↓ βX␈ε∃FOR␈↓ ∧≤␈ε∃I␈↓ ∧>␈ε∃:=␈↓ ∧q␈ε∃1␈↓ ¬∪␈ε∃TO␈↓ ¬F␈ε∃L␈↓ ¬h␈ε∃DO
␈β∧;␈↓ ∧-␈ε∃WRITE('*');
␈β∧c␈↓ βX␈ε∃WRITELN;
␈β¬
␈↓ βX␈ε∃END
␈β¬2␈↓ αP␈ε∃END.
␈βε:␈↓ ↓H␈ε2Example
␈βεk␈↓ α␈ε"T␈α⎇o␈αprin␈α␈t␈αthis␈αchessboard␈αpattern:
␈βπ+␈↓ ↓H␈∧π+↓Hα
-
␈βπ,␈↓ ↓H␈∧π,↓Hλα␈↓ s␈∧π,sλα
␈βπ3␈↓ ↓H␈∧π3↓Hα
-
␈βπB␈↓ αP␈ε∃XXXOOOXXXOOOXXXOOOXXXOOO
␈βπj␈↓ αP␈ε∃XXXOOOXXXOOOXXXOOOXXXOOO
␈βλ⊃␈↓ αP␈ε∃XXXOOOXXXOOOXXXOOOXXXOOO
␈βλ9␈↓ αP␈ε∃OOOXXXOOOXXXOOOXXXOOOXXX
␈βλa␈↓ αP␈ε∃OOOXXXOOOXXXOOOXXXOOOXXX
␈β	λ␈↓ αP␈ε∃OOOXXXOOOXXXOOOXXXOOOXXX
␈β	0␈↓ αP␈ε∃.␈↓ ββ␈ε∃.␈↓ β6␈ε∃.␈↓ βi␈ε∃.␈↓ ∧≤␈ε∃.␈↓ ∧O␈ε∃.␈↓ ¬α␈ε∃.␈↓ ¬5␈ε∃.
␈β	W␈↓ αP␈ε∃.␈↓ ββ␈ε∃.␈↓ β6␈ε∃.␈↓ βi␈ε∃.␈↓ ∧≤␈ε∃.␈↓ ∧O␈ε∃.␈↓ ¬α␈ε∃.␈↓ ¬5␈ε∃.
␈β	␈␈↓ αP␈ε∃.␈↓ ββ␈ε∃.␈↓ β6␈ε∃.␈↓ βi␈ε∃.␈↓ ∧≤␈ε∃.␈↓ ∧O␈ε∃.␈↓ ¬α␈ε∃.␈↓ ¬5␈ε∃.
␈β
'␈↓ αP␈ε∃OOOXXXOOOXXXOOOXXXOOOXXX
␈β
b␈↓ ↓H␈∧
b↓Hα
-
␈β
c␈↓ ↓H␈∧
c↓Hλα␈↓ s␈∧
csλα
␈β
j␈↓ ↓H␈∧
j↓Hα
-
␈β␈↓ α␈ε"The␈α|rst␈αsix␈αlines␈αcan␈αbe␈αprin␈α␈ted␈αby
␈βD␈↓ αP␈ε∃FOR␈↓ β∀␈ε∃I␈↓ β6␈ε∃:=␈↓ βi␈ε∃1␈↓ ∧␈ε∃TO␈↓ ∧>␈ε∃3␈↓ ∧`␈ε∃DO
␈βl␈↓ β%␈ε∃WRITELN('XXXOOOXXXOOOXXXOOOXXXOOO');
␈β∪␈↓ αP␈ε∃FOR␈↓ β∀␈ε∃I␈↓ β6␈ε∃:=␈↓ βi␈ε∃1␈↓ ∧␈ε∃TO␈↓ ∧>␈ε∃3␈↓ ∧`␈ε∃DO
␈β;␈↓ β%␈ε∃WRITELN('OOOXXXOOOXXXOOOXXXOOOXXX')
␈β
¬␈↓ α␈ε"Making␈αa␈αcompound␈αstatemen␈α␈t␈αof␈αthis␈αand␈αiterating,␈αw␈α␈e␈αget␈αthe␈αprogram
␈β
I␈↓ αP␈ε∃FOR␈↓ β∀␈ε∃J␈↓ β6␈ε∃:=␈↓ βi␈ε∃1␈↓ ∧␈ε∃TO␈↓ ∧>␈ε∃4␈↓ ∧`␈ε∃DO
␈β
q␈↓ β%␈ε∃BEGIN
␈β∞_␈↓ β%␈ε∃FOR␈↓ βi␈ε∃I␈↓ ∧␈ε∃:=␈↓ ∧>␈ε∃1␈↓ ∧`␈ε∃TO␈↓ ¬∪␈ε∃3␈↓ ¬5␈ε∃DO
␈β∞@␈↓ βX␈ε∃WRITELN('XXXOOOXXXOOOXXXOOOXXXOOO');
␈β∞h␈↓ β%␈ε∃FOR␈↓ βi␈ε∃I␈↓ ∧␈ε∃:=␈↓ ∧>␈ε∃1␈↓ ∧`␈ε∃TO␈↓ ¬∪␈ε∃3␈↓ ¬5␈ε∃DO
␈β∂∂␈↓ βX␈ε∃WRITELN('OOOXXXOOOXXXOOOXXXOOOXXX')
␈β∂7␈↓ β%␈ε∃END
␈β⊃_

␈β↓H␈↓ ↓$␈∧↓H↓$α
u
␈β↓J␈↓ ↓$␈∧↓J↓$Hα␈↓ "␈∧↓J"Hα␈↓ ↔␈∧↓J↔Hα
␈β↓V␈↓ ∧V␈ε>Com␈α␈pou␈α␈nd␈α∞Statements
␈β↓\␈↓ K␈ε"15
␈βα⊃␈↓ ↓$␈∧α⊃↓$α
u
␈βαO␈↓ ↓H␈ε2Pascal␈αNote:␈αIn␈α␈teger␈αDivision
␈ββ∧␈↓ α␈ε"There␈α
are␈αt␈α␈w␈α␈o␈α
division␈αoperators␈α
in␈αPascal.␈α∂The␈αform␈α
A/B␈αgiv␈α␈es␈α
as␈αexact␈α
a␈α
result
␈ββ/␈↓ ↓H␈ε"as␈αλthe␈α	machine␈α	can␈α	compute.␈α∂The␈α	form␈αλA␈α	DIV␈α	B␈α	giv␈α␈es␈αλthe␈α	in␈α␈teger␈α	part␈α	of␈α	the␈αλquotien␈α␈t;
␈ββ[␈↓ ↓H␈ε"7␈α
DIV␈α∞3␈α∞is␈α∞2,␈α∞for␈α∞example.␈α∃The␈α∞second␈α∞form␈α∞m␈α␈ust␈α
be␈α∞used␈α∞in␈α∞con␈α␈texts,␈α∞such␈α∞as␈α
the
␈β∧ε␈↓ ↓H␈ε"limits␈αof␈αiterations,␈αwhere␈αin␈α␈tegers␈αare␈αrequired.
␈β¬∂␈↓ ↓H␈ε2Exercise
␈β¬B␈↓ α␈ε$W␈α⎇ri␈α␈te␈α
a␈αprogram␈αwhic␈α␈h␈αpr␈α␈in␈α␈ts␈α
the␈α
|rst␈α
36␈α
num␈α␈bers␈α
i␈α␈n␈αt␈α␈he␈α
f␈α↓orm:
␈β¬u␈↓ ↓H␈∧¬u↓Hα
-
␈β¬w␈↓ ↓H␈∧¬w↓Hλα␈↓ s␈∧¬wsλα
␈β¬}␈↓ ↓H␈∧¬}↓Hα
-
␈βε
␈↓ αa␈ε∃0
␈βε5␈↓ αa␈ε∃1␈↓ β6␈ε∃2
␈βε\␈↓ αa␈ε∃3␈↓ β6␈ε∃4␈↓ ∧␈ε∃5
␈βπ∧␈↓ αa␈ε∃6␈↓ β6␈ε∃7␈↓ ∧␈ε∃8␈↓ ∧`␈ε∃9
␈βπ+␈↓ αP␈ε∃10␈↓ β%␈ε∃11␈↓ βz␈ε∃12␈↓ ∧O␈ε∃13␈↓ ¬$␈ε∃14
␈βπS␈↓ αP␈ε∃15␈↓ β%␈ε∃16␈↓ βz␈ε∃17␈↓ ∧O␈ε∃18␈↓ ¬$␈ε∃19␈↓ ¬y␈ε∃20
␈βπ{␈↓ αP␈ε∃21␈↓ β%␈ε∃22␈↓ βz␈ε∃23␈↓ ∧O␈ε∃24␈↓ ¬$␈ε∃25␈↓ ¬y␈ε∃26␈↓ εN␈ε∃27
␈βλ"␈↓ αP␈ε∃28␈↓ β%␈ε∃29␈↓ βz␈ε∃30␈↓ ∧O␈ε∃31␈↓ ¬$␈ε∃32␈↓ ¬y␈ε∃33␈↓ εN␈ε∃34␈↓ π#␈ε∃35
␈βλ]␈↓ ↓H␈∧λ]↓Hα
-
␈βλ←␈↓ ↓H␈∧λ←↓Hλα␈↓ s␈∧λ←sλα
␈βλf␈↓ ↓H␈∧λf↓Hα
-
␈βλ⎇␈↓ α␈ε$(Note:␈α
t␈α␈his␈α
requi␈α␈res␈α
use␈α
of␈α
the␈α
in␈α␈te␈α␈ger␈α
divi␈α␈sion␈α
o␈α↓pe␈α␈ration,␈α
DIV.␈α
Se␈α␈e␈α
the␈α
Pa␈α↓sc␈α␈al␈α
Note␈α
abov␈α␈e.␈α␈)
␈β	-␈↓ β)␈ε,th
␈β	2␈↓ α␈ε$(Clue␈α␈:␈α
t␈α␈he␈↓ β≡␈ε*i␈↓ βP␈ε$li␈α␈ne␈αstarts␈αwith␈αa␈αn␈α␈umbe␈α␈r␈ε*␈αi␈ε$␈α␈(␈ε*i␈ε8␈αλ␈␈ε$␈απ1)/␈α↓2.␈α⊃T␈α⎇ry␈α|r␈α␈st␈αwri␈α␈ting␈αa␈αprogra␈α↓m␈αwhi␈α␈ch␈αpri␈α␈nts
␈β	]␈↓ ↓H␈ε$onl␈α␈y␈αthe␈α
|r␈α␈st␈α
num␈α␈ber␈α
of␈αe␈α␈a␈α↓c␈α␈h␈α
li␈α␈ne.␈α␈)
␈β
b␈↓ ↓H␈ε2Exercise
␈β≤␈↓ α␈ε$Prin␈α␈t,␈α	one␈α
pe␈α␈r␈α
l␈α␈ine␈α␈,␈α	the␈α	t␈α␈wo-digi␈α␈t␈α
n␈α␈umbe␈α␈rs␈α
of␈α
whi␈α␈ch␈α	the␈α	|rst␈α
di␈α␈git␈α	is␈α	larger␈α	tha␈α↓n␈α	the␈α	sec␈α␈o␈α↓nd␈α	(1␈α↓0,
␈βG␈↓ ↓H␈ε$20,␈α21␈α↓,␈α30,.␈α␈..␈α␈,97,98)␈α↓.␈α∂T␈α↓hi␈α␈s␈αcan␈αbe␈αdone␈αby␈αa␈αne␈α␈sted␈αi␈α␈terati␈α␈o␈α↓n,␈α
using␈αa␈αsi␈α␈ngle␈↓ 
)␈ε$(␈↓ 
4␈ε8E␈↓ 
I␈ε$),␈αwhe␈α␈re␈↓ @␈ε8E␈↓ `␈ε$is
␈βH␈↓ 	@␈ε⊗WRITELN
␈βr␈↓ ↓H␈ε$an␈α
expre␈α␈ssion.
␈βw␈↓ ↓H␈ε2Exercise
␈β
1␈↓ α␈ε$Prin␈α␈t␈αthe␈αthree␈αdi␈α␈git␈αn␈α␈umbe␈α␈rs␈αof␈αwhi␈α␈ch␈αthe␈αdi␈α␈g␈α↓i␈α␈ts␈αa␈α↓re␈αi␈α␈n␈αdecre␈α␈asing␈αorde␈α␈r␈α(210␈α↓,␈α31␈α↓0,␈α32␈α↓0,␈α32␈α↓1,
␈β
\␈↓ ↓H␈ε$410␈α↓,␈α␈..␈α␈.986,␈α
98␈α↓7).
␈β∞`␈↓ ↓H␈ε2Exercise
␈β∂∀␈↓ α␈ε$W␈α⎇ri␈α␈te␈α
a␈α↓nd␈α
exe␈α␈cute␈α
a␈α
prog␈α↓ram␈αto␈α
prin␈α␈t␈α
the␈α
desi␈α␈gn␈αbe␈α␈lo␈α␈w.␈α∞(The␈α
border␈α
is␈α
4␈αc␈α␈hara␈α↓c␈α␈ters␈α
wi␈α␈de,␈α
the
␈β∂8␈↓ ↓H␈ε$i␈α␈nner␈α
square␈α
is␈α
17␈α
by␈α17.)␈α∞Use␈α
i␈α␈ter␈α␈a␈α↓ti␈α␈on␈αas␈α
muc␈α␈h␈αas␈α
y␈α␈o␈α↓u␈α
re␈α␈a␈α↓s␈α␈o␈α↓nably␈α
c␈α␈a␈α↓n.
␈β⊃∨

␈β↓H␈↓ ↓$␈∧↓H↓$α
u
␈β↓J␈↓ ↓$␈∧↓J↓$Hα␈↓ α→␈∧↓Jα→Hα␈↓ ↔␈∧↓J↔Hα
␈β↓V␈↓ ¬Q␈ε>Com␈α␈pou␈α␈nd␈α∞Statements
␈β↓\␈↓ ↓M␈ε"16
␈βα⊃␈↓ ↓$␈∧α⊃↓$α
u
␈βαK␈↓ βG␈ε∃*************************
␈βαr␈↓ βG␈ε∃*************************
␈ββ~␈↓ βG␈ε∃*************************
␈ββB␈↓ βG␈ε∃*************************
␈ββi␈↓ βG␈ε∃*****␈↓ ε≠␈ε∃*****
␈β∧⊃␈↓ βG␈ε∃*****␈↓ ε≠␈ε∃*****
␈β∧8␈↓ βG␈ε∃****␈↓ ∧-␈ε∃*␈↓ ¬y␈ε∃*␈↓ ε,␈ε∃****
␈β∧`␈↓ βG␈ε∃****␈↓ ∧>␈ε∃*␈↓ ¬h␈ε∃*␈↓ ε,␈ε∃****
␈β¬λ␈↓ βG␈ε∃****␈↓ ∧O␈ε∃*␈↓ ¬W␈ε∃*␈↓ ε,␈ε∃****
␈β¬/␈↓ βG␈ε∃****␈↓ ∧`␈ε∃*␈↓ ¬F␈ε∃*␈↓ ε,␈ε∃****
␈β¬W␈↓ βG␈ε∃****␈↓ ∧q␈ε∃*␈↓ ¬5␈ε∃*␈↓ ε,␈ε∃****
␈β¬}␈↓ βG␈ε∃****␈↓ ¬α␈ε∃*␈↓ ¬$␈ε∃*␈↓ ε,␈ε∃****
␈βε&␈↓ βG␈ε∃****␈↓ ¬∪␈ε∃*␈↓ ε,␈ε∃****
␈βεN␈↓ βG␈ε∃****␈↓ ¬α␈ε∃*␈↓ ¬$␈ε∃*␈↓ ε,␈ε∃****
␈βεu␈↓ βG␈ε∃****␈↓ ∧q␈ε∃*␈↓ ¬5␈ε∃*␈↓ ε,␈ε∃****
␈βπ≥␈↓ βG␈ε∃****␈↓ ∧`␈ε∃*␈↓ ¬F␈ε∃*␈↓ ε,␈ε∃****
␈βπD␈↓ βG␈ε∃****␈↓ ∧O␈ε∃*␈↓ ¬W␈ε∃*␈↓ ε,␈ε∃****
␈βπl␈↓ βG␈ε∃****␈↓ ∧>␈ε∃*␈↓ ¬h␈ε∃*␈↓ ε,␈ε∃****
␈βλ∀␈↓ βG␈ε∃****␈↓ ∧-␈ε∃*␈↓ ¬y␈ε∃*␈↓ ε,␈ε∃****
␈βλ;␈↓ βG␈ε∃****␈↓ ∧≤␈ε∃*␈↓ ε
␈ε∃*␈↓ ε,␈ε∃****
␈βλc␈↓ βG␈ε∃*****␈↓ ε≠␈ε∃*****
␈β	
␈↓ βG␈ε∃*************************
␈β	2␈↓ βG␈ε∃*************************
␈β	Z␈↓ βG␈ε∃*************************
␈β
↓␈↓ βG␈ε∃*************************
␈β⊃_

␈β↓H␈↓ ↓$␈∧↓H↓$α
u
␈β↓J␈↓ ↓$␈∧↓J↓$Hα␈↓ "␈∧↓J"Hα␈↓ ↔␈∧↓J↔Hα
␈β↓V␈↓ ∧V␈ε>Com␈α␈pou␈α␈nd␈α∞Statements
␈β↓\␈↓ K␈ε"17
␈βα⊃␈↓ ↓$␈∧α⊃↓$α
u
␈βαO␈↓ ↓H␈ε2Exercise
␈βαx␈↓ α␈ε$Ma␈α↓t␈α␈ch␈α
the␈α
pi␈α␈ece␈α␈s␈α
o␈α↓f␈α
prog␈α↓r␈α␈a␈α↓m␈α
belo␈α␈w␈α
to␈αthe␈α	pa␈α↓ges␈α
the␈α␈y␈αpri␈α␈n␈α␈t.
␈ββX␈↓ ↓H␈ε∃(1)␈↓ α≥␈ε∃FOR␈↓ αa␈ε∃R␈↓ ββ␈ε∃:=␈↓ β6␈ε∃1␈↓ βX␈ε∃TO␈↓ ∧␈ε∃4␈↓ ∧-␈ε∃DO␈↓ πx␈ε∃(i)␈↓ 	␈ε∃AB
␈β∧␈↓ αP␈ε∃FOR␈↓ β∀␈ε∃C␈↓ β6␈ε∃:=␈↓ βi␈ε∃1␈↓ ∧␈ε∃TO␈↓ ∧>␈ε∃R␈↓ ∧`␈ε∃DO␈↓ 	␈ε∃AAB
␈β∧'␈↓ ββ␈ε∃WRITE('A');␈↓ 	␈ε∃AAAB
␈β∧O␈↓ α≥␈ε∃WRITELN('B')␈↓ 	␈ε∃AAAAB
␈β¬≡␈↓ ↓H␈ε∃(2)␈↓ α≥␈ε∃FOR␈↓ αa␈ε∃R␈↓ ββ␈ε∃:=␈↓ β6␈ε∃1␈↓ βX␈ε∃TO␈↓ ∧␈ε∃4␈↓ ∧-␈ε∃DO␈↓ πx␈ε∃(ii)␈↓ 	␈ε∃AAAAAAAAAAB
␈β¬F␈↓ αP␈ε∃FOR␈↓ β∀␈ε∃C␈↓ β6␈ε∃:=␈↓ βi␈ε∃1␈↓ ∧␈ε∃TO␈↓ ∧>␈ε∃R␈↓ ∧`␈ε∃DO
␈β¬m␈↓ ββ␈ε∃BEGIN␈↓ πx␈ε∃(iii)␈↓ 	␈ε∃AB
␈βε∃␈↓ ββ␈ε∃WRITE('A');␈↓ 	␈ε∃AB
␈βε<␈↓ ββ␈ε∃WRITELN('B')␈↓ 	␈ε∃B
␈βεd␈↓ ββ␈ε∃END␈↓ 	␈ε∃AB
␈βπ␈↓ 	␈ε∃B
␈βπ3␈↓ ↓H␈ε∃(3)␈↓ α≥␈ε∃FOR␈↓ αa␈ε∃R␈↓ ββ␈ε∃:=␈↓ β6␈ε∃1␈↓ βX␈ε∃TO␈↓ ∧␈ε∃4␈↓ ∧-␈ε∃DO␈↓ 	␈ε∃B
␈βπ[␈↓ αP␈ε∃BEGIN␈↓ 	␈ε∃AB
␈βλα␈↓ αP␈ε∃FOR␈↓ β∀␈ε∃C␈↓ β6␈ε∃:=␈↓ βi␈ε∃1␈↓ ∧␈ε∃TO␈↓ ∧>␈ε∃R␈↓ ∧`␈ε∃DO␈↓ 	␈ε∃B
␈βλ*␈↓ ββ␈ε∃WRITE('A');␈↓ 	␈ε∃B
␈βλR␈↓ αP␈ε∃WRITELN('B')␈↓ 	␈ε∃B
␈βλy␈↓ αP␈ε∃END
␈β	!␈↓ πx␈ε∃(iv)␈↓ 	␈ε∃AB
␈β	H␈↓ ↓H␈ε∃(4)␈↓ α≥␈ε∃FOR␈↓ αa␈ε∃R␈↓ ββ␈ε∃:=␈↓ β6␈ε∃1␈↓ βX␈ε∃TO␈↓ ∧␈ε∃4␈↓ ∧-␈ε∃DO␈↓ 	␈ε∃AB
␈β	p␈↓ αP␈ε∃BEGIN␈↓ 	␈ε∃AB
␈β
_␈↓ αP␈ε∃WRITE('A');␈↓ 	␈ε∃AB
␈β
?␈↓ αP␈ε∃FOR␈↓ β∀␈ε∃C␈↓ β6␈ε∃:=␈↓ βi␈ε∃1␈↓ ∧␈ε∃TO␈↓ ∧>␈ε∃R␈↓ ∧`␈ε∃DO␈↓ 	␈ε∃AB
␈β
g␈↓ ββ␈ε∃WRITELN('B')␈↓ 	␈ε∃AB
␈β∞␈↓ αP␈ε∃END␈↓ 	␈ε∃AB
␈β6␈↓ 	␈ε∃AB
␈β↑␈↓ ↓H␈ε∃(5)␈↓ α≥␈ε∃FOR␈↓ αa␈ε∃R␈↓ ββ␈ε∃:=␈↓ β6␈ε∃1␈↓ βX␈ε∃TO␈↓ ∧␈ε∃4␈↓ ∧-␈ε∃DO␈↓ 	␈ε∃AB
␈β¬␈↓ αP␈ε∃BEGIN␈↓ 	␈ε∃AB
␈β-␈↓ αP␈ε∃FOR␈↓ β∀␈ε∃C␈↓ β6␈ε∃:=␈↓ βi␈ε∃1␈↓ ∧␈ε∃TO␈↓ ∧>␈ε∃R␈↓ ∧`␈ε∃DO
␈βT␈↓ ββ␈ε∃WRITE('A')
␈β|␈↓ αP␈ε∃END;
␈β
$␈↓ α≥␈ε∃WRITELN('B')
␈β⊃_

␈β↓H␈↓ ↓$␈∧↓H↓$α
u
␈β↓J␈↓ ↓$␈∧↓J↓$Hα␈↓ α→␈∧↓Jα→Hα␈↓ ↔␈∧↓J↔Hα
␈β↓V␈↓ εβ␈ε>A␈α↓b␈α␈out␈α∞De|␈α␈nit␈α␈ion␈α␈s
␈β↓\␈↓ ↓M␈ε"18
␈βα⊃␈↓ ↓$␈∧α⊃↓$α
u
␈βα[␈↓ ↓H␈ε>Abo␈α␈ut␈α∞De|n␈α␈iti␈α␈ons␈α␈.
␈ββ≡␈↓ α␈ε"In␈α
describing␈α
Pascal,␈α∞w␈α␈e␈α
shall␈α
distinguish␈α
bet␈α␈w␈α␈een␈ε/␈α
syn␈α␈tax␈ε",␈↓ 	-␈ε/seman␈α␈tics␈ε",␈↓ 
[␈ε"and␈ε/␈α
prag-
␈ββI␈↓ ↓H␈ε/matics␈ε".␈↓ αW␈ε/Syn␈α␈tax␈ε"␈α⊃is␈α⊃the␈α∩grammar␈α⊃of␈α⊃the␈α⊃language;␈α∀it␈α⊃speci|es␈α⊃which␈α⊃programs␈α⊃are
␈ββu␈↓ ↓H␈ε"meaningful,␈α∂and␈α∞h␈α↓o␈α␈w␈α∂a␈α∞program␈α∂is␈α∂subdivided␈α∞in␈α␈to␈α∂meaningful␈α∞parts.␈ε/␈α_Seman␈α␈tics␈ε"␈α∞is
␈β∧ ␈↓ ↓H␈ε"concerned␈α	with␈α
de|ning␈α	meaning;␈α
it␈α
speci|es␈α	what␈α
each␈α	program␈α
does␈α	when␈α	executed,
␈β∧K␈↓ ↓H␈ε"usually␈αeither␈α
by␈αsa␈α␈ying␈αh␈α↓o␈α␈w␈αthe␈αprogram␈αcarries␈αout␈αits␈αactions,␈αor␈αby␈αsa␈α␈ying␈αh␈α↓o␈α␈w␈α
to
␈β∧v␈↓ ↓H␈ε"construct␈α∞a␈α
simpler␈α∞equiv␈α}alen␈α␈t␈α∞program.␈ε/␈α⊗Pragmatics␈ε"␈α∞is␈α∞concerned␈α∞with␈α
practicalit␈α␈y;
␈β¬!␈↓ ↓H␈ε"it␈α⊃states␈α∩what␈α⊃execution␈α⊃of␈α∩a␈α⊃program␈α∩will␈α⊃cost,␈α∪usually␈α∩as␈α⊃measured␈α∩in␈α⊃units␈α⊃of
␈β¬M␈↓ ↓H␈ε"time␈α
or␈α
m␈α↓oney,␈α∞whether␈α
execution␈α∞of␈α
a␈α
program␈α∞will␈α
require␈α
m␈α↓ore␈α∞of␈α
some␈α
resource
␈β¬x␈↓ ↓H␈ε"than␈α
is␈αa␈α␈v␈α}alable␈α
on␈α
a␈α
particular␈α
computer,␈α
and␈α
what␈α
the␈α
v␈α}alue␈α
of␈α
the␈α
results␈α
will␈αbe
␈βε#␈↓ ↓H␈ε"(particularly␈αh␈α↓o␈α␈w␈αprecisely␈αthey␈αare␈αcalculated).
␈βεN␈↓ α␈ε"F␈α⎇or␈α	the␈α
purposes␈α	of␈α	syn␈α␈tactic␈α	de|nition,␈α
w␈α␈e␈α	will␈α
ev␈α␈en␈α␈tually␈α	giv␈α␈e␈α	precise␈α	de|nitions
␈βεy␈↓ ↓H␈ε"to␈αa␈αn␈α␈um␈α␈ber␈α
of␈αkinds␈α
of␈αthings␈αw␈α␈e␈α
can␈αwrite␈αas␈α
parts␈αof␈α
programs.␈α⊃Am␈α↓ong␈αthese␈αare
␈βπ%␈↓ ↓H␈ε"the␈αfollo␈α␈wing:
␈βπ←␈↓ ↓Z␈ε6∂␈↓ ↓}␈ε/Constan␈α␈ts␈ε":␈↓ β3␈ε"designate␈α
a␈α
particular␈α
n␈α␈um␈α␈ber,␈α∞w␈α␈ord,␈α
or␈α
object␈α
with␈α
which␈α
computa-
␈βλ
␈↓ α4␈ε"tion␈αis␈αdone.
␈βλQ␈↓ βD␈ε"Examples:
␈βλS␈↓ ∧r␈ε52,␈α∩3.14159␈α∪'␈α␈MISSISSIPP␈α␈I'
␈β	→␈↓ ↓Z␈ε6∂␈↓ ↓}␈ε/Iden␈α␈ti|ers␈ε":␈↓ β.␈ε"used␈αas␈αnames␈αfor␈αan␈α␈ything␈αto␈αwhich␈αa␈αprogrammer␈αma␈α␈y␈αgiv␈α␈e␈αa␈αname:
␈β	D␈↓ α4␈ε"constan␈α␈ts,␈αv␈α}ariables,␈αfunctions,␈αtables,␈αpart␈αof␈αprograms.
␈β
␈↓ βD␈ε"Examples:
␈β

␈↓ ∧r␈ε5A,␈α∩X,␈α∪SINE,␈α∩LOGTABLE,␈α∩A3PQ14,␈α∪TI␈α␈MEOFDAY
␈β
S␈↓ ↓Z␈ε6∂␈↓ ↓}␈ε/V␈α⎇ariables␈ε":␈↓ β#␈ε"iden␈α␈ti|ers␈αwhich␈αha␈α␈v␈α␈e␈αappeared␈αin␈αa␈↓ λ)␈ε"declaration.
␈β
U␈↓ πe␈ε5VA␈α␈R
␈β~␈↓ βD␈ε"Examples:␈↓ πY␈ε".␈αε.␈αε.
␈β≤␈↓ ∧r␈ε5VA␈α␈R␈α∪A,X␈α∪:␈α∪IN␈α␈TEGER;␈↓ λ⊗␈ε5PR␈α␈INT(A)
␈βa␈↓ ↓Z␈ε6∂␈↓ ↓}␈ε/Expressions␈ε":␈↓ βV␈ε"designate␈α⊃a␈α∩w␈α␈a␈α␈y␈α⊃of␈α⊃computing␈α⊃a␈α⊃v␈α}alue␈α∩for␈α⊃subsequen␈α␈t␈α⊃use␈α⊃in␈α⊃the
␈β
␈↓ α4␈ε"program.␈α∂Since␈α	an␈α	expression␈α	ma␈α␈y␈α	con␈α␈tain␈α
v␈α}ariables␈α	which␈α	ha␈α␈v␈α␈e␈α	di{eren␈α␈t␈α	v␈α}aues
␈β8␈↓ α4␈ε"at␈α	di{eren␈α␈t␈α	times,␈α
the␈α	computation␈α
which␈α	an␈α	expression␈α
describes␈α	m␈α␈ust␈α	usually
␈βc␈↓ α4␈ε"be␈αdone␈αagain␈αeach␈αseparate␈αtime␈αthe␈αv␈α}alue␈αof␈αthe␈αexpression␈αis␈αneeded.
␈β
*␈↓ βD␈ε"Examples:
␈β
,␈↓ ∧r␈ε5X,␈α∩13.54,␈α∪CO␈α␈S(3.141592␈α␈654/6),␈α∪2*␈α␈A,␈α∪B-C
␈β
r␈↓ ↓Z␈ε6∂␈↓ ↓}␈ε/Commands␈ε":␈↓ βN␈ε"designate␈α∩an␈α⊃action␈α∩or␈α⊃series␈α∩of␈α⊃actions␈α⊃to␈α∩be␈α⊃carried␈α∩out␈α⊃by␈α⊃the
␈β∞≥␈↓ α4␈ε"computer,␈α∀such␈α∪as␈α∪calculations,␈α∀prin␈α␈ting,␈α∀deciding␈α∪bet␈α␈w␈α␈een␈α∪t␈α␈w␈α␈o␈α∪courses␈α∩of
␈β∞H␈↓ α4␈ε"action,␈αetc.
␈β∂⊂␈↓ βD␈ε"Example:
␈β∂∩␈↓ ∧d␈ε5FO␈α␈R␈α∪I␈α∪:=␈α∪2␈α∪T␈α␈O␈α∪5␈α∪DO␈α∪WRI␈α␈TE␈α∪(I)
␈β⊃_

␈β↓H␈↓ ↓$␈∧↓H↓$α
u
␈β↓J␈↓ ↓$␈∧↓J↓$Hα␈↓ "␈∧↓J"Hα␈↓ ↔␈∧↓J↔Hα
␈β↓V␈↓ ¬λ␈ε>A␈α↓b␈α␈out␈α∞De|␈α␈nit␈α␈ion␈α␈s
␈β↓\␈↓ K␈ε"19
␈βα⊃␈↓ ↓$␈∧α⊃↓$α
u
␈βαO␈↓ α␈ε"In␈α	describing␈α	the␈αλgrammatical␈α	structure␈α	of␈α	Pascal,␈α	w␈α␈e␈α	will␈α	use␈α	the␈α	script␈αλletters␈↓ L␈ε6K␈↓ j␈ε",
␈βαz␈↓ ↓H␈ε6I␈↓ ↓`␈ε",␈↓ ↓v␈ε6V␈↓ α∩␈ε",␈↓ α(␈ε6E␈↓ αA␈ε",␈↓ αW␈ε6C␈↓ αm␈ε",␈αpossibly␈αwith␈αsubscripts,␈αdiacritical␈αmarks,␈αetc.,␈αas␈αsym␈α␈bols␈αfor␈αarbitrary
␈ββ%␈↓ ↓H␈ε"constan␈α␈ts,␈α
iden␈α␈ti|ers,␈αv␈α}ariables,␈α
expressions,␈α
and␈α
commands.␈α∩F␈α⎇or␈α
example,␈α
the␈αform
␈ββP␈↓ ↓H␈ε"of␈αan␈αiterativ␈α␈e␈αcommand␈αcan␈αbe␈αdescribed␈αas
␈β∧.␈↓ β#␈ε6V␈↓ ∧␈ε6E␈↓ ∧z␈ε6E␈↓ ¬j␈ε6C
␈β∧0␈↓ αX␈ε5FO␈α␈R␈↓ βR␈ε5:=␈↓ ∧B␈ε5TO␈↓ ¬1␈ε5DO
␈β∧;␈↓ ∧≡␈ε%1␈↓ ¬
␈ε%2
␈β¬␈↓ ↓H␈ε"where␈↓ α0␈ε6V␈↓ αY␈ε"is␈αa␈α
v␈α}ariable,␈↓ ∧-␈ε6E␈↓ ∧]␈ε"and␈↓ ¬$␈ε6E␈↓ ¬T␈ε"are␈α
expressions␈αha␈α␈ving␈α
in␈α␈teger␈αv␈α}alues,␈α
and␈↓ 
u␈ε6C␈↓ _␈ε"is␈αan␈α␈y
␈β¬→␈↓ ∧@␈ε%1␈↓ ¬7␈ε%2
␈β¬7␈↓ ↓H␈ε"command.
␈β¬e␈↓ α␈ε"W␈α⎇e␈α∞will␈α
later␈α∞in␈α␈troduce␈α∞other␈α
grammatical␈α∞categories.␈α∃F␈α⎇or␈α
each,␈α∂w␈α␈e␈α
will␈α∞ha␈α␈v␈α␈e␈α
a
␈βε⊂␈↓ ↓H␈ε"script␈αcapital␈αletter␈αto␈αstand␈αfor␈αan␈αarbitrary␈αmem␈α␈ber␈αof␈αthat␈αcategory.
␈βε>␈↓ α␈ε"O$en␈α∂it␈α∞will␈α∞be␈α∂necessary␈α∞to␈α∂de|ne␈α∞the␈α∂meanings␈α∞of␈α∂commands,␈α∂etc.,␈α∂in␈α∞which
␈βεi␈↓ ↓H␈ε"one␈α⊃or␈α⊃m␈α↓ore␈α∩expressions␈α⊃appear,␈α∪and␈α⊃for␈α∩which␈α⊃the␈α⊃process␈α∩of␈α⊃execution␈α⊃requires
␈βπ∀␈↓ ↓H␈ε"ev␈α}aluation␈α
of␈α
the␈αexpressions.␈α∂In␈αsuch␈α
circumstances,␈αw␈α␈e␈α
will␈αuse␈α
the␈αlo␈α␈w␈α␈er␈α
case␈α
letter
␈βπ@␈↓ ↓H␈ε(␈ε"␈α⊂to␈α⊃designate␈α⊂the␈α⊃v␈α}alue␈α⊂of␈α⊃the␈α⊂expression␈↓ π
␈ε6E␈↓ π#␈ε",␈α⊃i.e.,␈α∩the␈α⊃n␈α␈um␈α␈ber,␈α⊃w␈α␈ord,␈α∩etc.,␈α⊃which
␈βπk␈↓ ↓H␈ε"results␈αfrom␈αev␈α}aluating␈↓ ∧=␈ε6E␈↓ ∧V␈ε".␈α⊂If␈↓ ¬∃␈ε6E␈↓ ¬:␈ε"is␈αthe␈αexpression␈↓ λa␈ε",␈αthe␈α
v␈α}alue␈ε(␈α␈ε"␈αis␈α96.␈α⊂(More
␈βπm␈↓ πJ␈ε5(3+5)*␈α␈12
␈βλ⊗␈↓ ↓H␈ε"precisely,␈ε(␈α␈ε"␈αis␈αthe␈αn␈α␈um␈α␈ber␈αwhich␈αw␈α␈e␈αdesignate␈αin␈αdecimal␈αn␈α↓otation␈αby␈α96␈α;␈αin␈αRoman
␈βλA␈↓ ↓H␈ε"n␈α␈umerals,␈ε(␈α∞␈ε"␈α∞w␈α␈ould␈α∞be␈α∞designated␈α∞by␈α∞X␈α␈CVI␈α∞or,␈α∞in␈α∞binary␈α∞n␈α↓otation,␈α∞by␈α∞1100000,␈α∞but
␈βλl␈↓ ↓H␈ε"w␈α␈ould␈αstill␈α
be␈α
the␈α
same␈α
v␈α}alue.)␈α∩Similarly,␈α
w␈α␈e␈α
use␈↓ πT␈ε(␈↓ λ	␈ε"and␈ε(␈α
␈ε"'␈α
to␈αrefer␈α
to␈α
the␈α
v␈α}alues␈αof
␈βλy␈↓ πk␈ε%1
␈β	_␈↓ ↓H␈ε6E␈↓ ↓w␈ε"and␈↓ α=␈ε6E␈↓ αV␈ε"'␈αrespectiv␈α␈ely.␈α⊂T␈α⎇o␈αsa␈α␈y␈αconcisely␈αthat␈αif␈αan␈αexpression␈αconsists␈αof␈αt␈α␈w␈α␈o␈αsmaller
␈β	$␈↓ ↓[␈ε%1
␈β	C␈↓ ↓H␈ε"expressions␈α∞connected␈α∞by␈α∂an␈α∞asterisk,␈α∂the␈α∞v␈α}alue␈α∞of␈α∂the␈α∞expression␈α∞is␈α∂the␈α∞product␈α∞of
␈β	n␈↓ ↓H␈ε"the␈α
v␈α}alues␈α
of␈α
the␈α
t␈α␈w␈α␈o␈α
smaller␈α
expressions,␈α
w␈α␈e␈α
could␈α
sa␈α␈y␈α
\If␈↓ λR␈ε6E␈↓ λu␈ε"is␈↓ 	↔␈ε6E␈↓ 	;␈ε"*␈↓ 	M␈ε6E␈↓ 	q␈ε",␈α
then␈ε(␈α
␈ε"␈α=␈↓ %␈ε(␈↓ P␈ε6α
␈β	z␈↓ 	*␈ε%1␈↓ 	`␈ε%2␈↓ <␈ε%1
␈β
→␈↓ ↓H␈ε(␈↓ ↓o␈ε"."
␈β
&␈↓ ↓←␈ε%2
␈β
G␈↓ α␈ε"In␈α∞general,␈α∞w␈α␈e␈α∞use␈α
script␈α∞capital␈α∞letters␈α∞in␈α
stating␈α∞syn␈α␈tactic␈α∞rules␈α∞and␈α
relations,
␈β
r␈↓ ↓H␈ε"and␈αlo␈α␈w␈α␈er␈αcase␈αletters␈αin␈αstating␈αseman␈α␈tic␈αrelations;␈αw␈α␈e␈αwill␈α|nd␈αourselv␈α␈es␈αusing␈αboth
␈β≥␈↓ ↓H␈ε"when␈α	w␈α␈e␈α
w␈α␈an␈α␈t␈α	to␈α
sa␈α␈y␈α	\T␈α⎇o␈α
express␈α	such-and-such␈α	meanings,␈α
use␈α
such-and-such␈α	forms."
␈βK␈↓ α␈ε"O$en␈α∞practical␈α∞considerations␈α∞complicate␈α
the␈α∞de|nition␈α∞of␈α∞a␈α∞programming␈α
lan-
␈βv␈↓ ↓H␈ε"guage.␈α_F␈α⎇or␈α∂example,␈α∂computation␈α∂is␈α∂done␈α∂only␈α∂with␈α∞n␈α␈um␈α␈bers␈α∂up␈α∂to␈α∂a␈α∂certain␈α∞size;
␈β!␈↓ ↓H␈ε"computations␈α⊂which␈α⊂are␈α⊃in␈α␈tended␈α⊂to␈α⊂giv␈α␈e␈α⊃results␈α⊂larger␈α⊂than␈α⊂the␈α⊃allo␈α␈w␈α␈ed␈α⊂size␈α⊂giv␈α␈e
␈βM␈↓ ↓H␈ε"erroneous␈α∂results␈α∂or␈α∂stop␈α∂the␈α∂program.␈α~F␈α⎇or␈α∂example,␈α⊂the␈α∂rule␈α∂that␈α∂\If␈↓ 
B␈ε6E␈↓ 
j␈ε"is␈↓ ⊃␈ε6E␈↓ 5␈ε"*␈↓ G␈ε6E␈↓ j␈ε",
␈βY␈↓ $␈ε%1␈↓ Z␈ε%2
␈βx␈↓ ↓H␈ε"then␈ε(␈α␈ε"␈α
=␈↓ αo␈ε(␈↓ β∨␈ε6α␈↓ βL␈ε(␈↓ βt␈ε""␈αis␈α
only␈α
v␈α}alid␈α
if␈↓ εα␈ε(␈↓ ε2␈ε6α␈↓ ε↑␈ε(␈↓ π∪␈ε"is␈α
within␈α
the␈αallo␈α␈w␈α␈ed␈α
range␈α
of␈α
sizes␈αfor
␈β
∧␈↓ βε␈ε%1␈↓ βc␈ε%2␈↓ ε→␈ε%1␈↓ εu␈ε%2
␈β
#␈↓ ↓H␈ε"n␈α␈um␈α␈bers.␈α∂Such␈α
pragmatic␈α
considerations␈α
complicate␈α	de|nitions,␈αand␈α
can␈α
be␈α	forgotten
␈β
N␈↓ ↓H␈ε"m␈α↓ost␈αof␈αthe␈αtime␈αin␈αelemen␈α␈tary␈αprogramming.
␈β
|␈↓ α␈ε"W␈α⎇e␈αma␈α␈y␈αn␈α↓o␈α␈w␈αgiv␈α␈e␈αm␈α↓ore␈αprecise␈αand␈αcomplete␈αde|nitions␈αof␈αthe␈αaspects␈αof␈αPascal
␈β∞'␈↓ ↓H␈ε"which␈αha␈α␈v␈α␈e␈αalready␈αbeen␈αin␈α␈troduced.
␈β∞U␈↓ α␈ε"There␈αare␈αt␈α␈w␈α␈o␈αfundamen␈α␈tal␈αprin␈α␈ting␈αcommands:
␈β∂3␈↓ βI␈ε6O
␈β∂5␈↓ αX␈ε5WR␈α␈ITE(␈↓ βf␈ε5)
␈β⊃≠

␈β↓H␈↓ ↓$␈∧↓H↓$α
u
␈β↓J␈↓ ↓$␈∧↓J↓$Hα␈↓ α→␈∧↓Jα→Hα␈↓ ↔␈∧↓J↔Hα
␈β↓V␈↓ εβ␈ε>A␈α↓b␈α␈out␈α∞De|␈α␈nit␈α␈ion␈α␈s
␈β↓\␈↓ ↓M␈ε"20
␈βα⊃␈↓ ↓$␈∧α⊃↓$α
u
␈βαO␈↓ ↓H␈ε"where␈↓ α4␈ε6O␈↓ αb␈ε"is␈α⊂either␈α⊃an␈α⊃expression␈α⊂wh␈α↓ose␈α⊃v␈α}alue␈α⊂is␈α⊃a␈α⊂n␈α␈um␈α␈ber,␈α∩or␈α⊃a␈α⊂message␈α⊃in␈α⊂single
␈βαz␈↓ ↓H␈ε"quotation␈αmarks,␈αprin␈α␈ts␈αthe␈αv␈α}alue␈αof␈↓ ε␈ε6O␈↓ ε5␈ε"in␈αthe␈αoutput␈α|le.
␈ββj␈↓ αX␈ε5WR␈α␈ITELN
␈β∧V␈↓ ↓H␈ε"begins␈α∞a␈α∂new␈α∞line␈α∂on␈α∂the␈α∞output␈α∂|le;␈α⊂it␈α∞is␈α∂equiv␈α}alen␈α␈t,␈α∂roughly,␈α⊂to␈α∞t␈α␈yping␈α∂a␈α∞carriage
␈β¬↓␈↓ ↓H␈ε"return.
␈β¬4␈↓ α␈ε"Other␈αprin␈α␈ting␈αcommands␈αare␈αabbreviated␈αcom␈α␈binations␈αof␈αthese:
␈βε≡␈↓ ¬g␈∧ε≡¬g(α
␈βε ␈↓ βI␈ε6O␈↓ ∧¬␈ε6O␈↓ ∧A␈ε".␈αε.␈αε.␈↓ ¬β␈ε6O␈↓ ε}␈ε6O
␈βε"␈↓ αX␈ε5WR␈α␈ITE(␈↓ βr␈ε5,␈↓ ∧.␈ε5,␈↓ ∧q␈ε5,␈↓ ¬0␈ε5)␈↓ ε␈ε5WRITE(␈↓ π&␈ε5);
␈βε-␈↓ βa␈ε%1␈↓ ∧≥␈ε%2␈↓ ¬≤␈ε+n␈↓ π⊗␈ε%1
␈βεF␈↓ ¬g␈∧εF¬g(α
␈βεH␈↓ ε}␈ε6O
␈βεJ␈↓ ε␈ε5WRITE(␈↓ π&␈ε5);
␈βεT␈↓ π⊗␈ε%2
␈βεn␈↓ ¬g␈∧εn¬g(α
␈βεr␈↓ ε∨␈ε5.
␈βπ∃␈↓ ¬g␈∧π∃¬g(α
␈βπ→␈↓ ε∨␈ε5.
␈βπ=␈↓ ¬g␈∧π=¬g(α
␈βπA␈↓ ε∨␈ε5.
␈βπd␈↓ ¬g␈∧πd¬g(α
␈βπf␈↓ ε}␈ε6O
␈βπh␈↓ ε␈ε5WRITE(␈↓ π*␈ε5)
␈βπs␈↓ π⊗␈ε+n
␈βλ↑␈↓ α␈ε"Y␈α⎇ou␈α⊃m␈α␈ust␈α⊃pa␈α␈y␈α⊃atten␈α␈tion␈α⊃to␈α⊂the␈α⊃n␈α␈um␈α␈ber␈α⊃of␈α⊃characters␈α⊃which␈α⊃can␈α⊃be␈α⊂displa␈α␈y␈α␈ed
␈β		␈↓ ↓H␈ε"on␈α∞a␈α∞single␈α∞line.␈α↔Y␈α⎇our␈α∞terminal␈α∞screen␈α∂will␈α∞displa␈α␈y␈α∞80␈α∞characters␈α∞per␈α∂line.␈α⊗The␈α∞line
␈β	5␈↓ ↓H␈ε"prin␈α␈ter␈α
will␈α
displa␈α␈y␈α
132␈α
characters␈α
per␈α
line.␈α∪If␈α
y␈α␈ou␈α
prin␈α␈t␈α
m␈α↓ore␈α
than␈α
one␈α
line's␈α
w␈α␈orth
␈β	`␈↓ ↓H␈ε"of␈αinformation␈αbet␈α␈w␈α␈een␈↓ ¬D␈ε"s,␈αsome␈αof␈αy␈α␈our␈αoutput␈αwill␈αbe␈αlost␈αor␈αgarbled.
␈β	b␈↓ ∧@␈ε5WR␈α␈ITELN
␈β
J␈↓ ε␈∧
Jε(α
␈β
L␈↓ βo␈ε6O␈↓ ∧+␈ε6O␈↓ ∧f␈ε".␈αε.␈αε.␈↓ ¬)␈ε6O␈↓ π#␈ε6O
␈β
N␈↓ αX␈ε5WR␈α␈ITELN(␈↓ ∧_␈ε5,␈↓ ∧S␈ε5,␈↓ ¬⊗␈ε5,␈↓ ¬V␈ε5)␈↓ ε2␈ε5WRITE␈α␈(␈↓ πL␈ε5);
␈β
X␈↓ ∧π␈ε%1␈↓ ∧C␈ε%2␈↓ ¬A␈ε+n␈↓ π;␈ε%1
␈β
r␈↓ ε␈∧
rε(α
␈β
t␈↓ π#␈ε6O
␈β
v␈↓ ε2␈ε5WRITE␈α␈(␈↓ πL␈ε5);
␈β␈↓ π;␈ε%2
␈β→␈↓ ε␈∧→ε(α
␈β≥␈↓ εE␈ε5.
␈βA␈↓ ε␈∧Aε(α
␈βE␈↓ εE␈ε5.
␈βh␈↓ ε␈∧hε(α
␈βl␈↓ εE␈ε5.
␈β⊂␈↓ ε␈∧⊂ε(α
␈β∩␈↓ π#␈ε6O
␈β∀␈↓ ε2␈ε5WRITE␈α␈(␈↓ πP␈ε5)␈α␈;
␈β≡␈↓ π;␈ε+n
␈β8␈↓ ε␈∧8ε(α
␈β<␈↓ ε2␈ε5WRITE␈α␈LN
␈β
v␈↓ ↓H␈ε2De|nition
␈β∞)␈↓ α␈ε"A␈αn␈α␈umerical␈αexpression,␈↓ ¬␈ε"if␈αit␈αis␈α
n␈α↓ot␈αa␈αconstan␈α␈t␈αor␈αa␈αv␈α}ariable,␈αhas␈αone␈αof␈αthe␈α
forms
␈β∞T␈↓ ↓H␈ε"giv␈α␈en␈αbelo␈α␈w␈α
in␈α
the␈α
le$␈α
column,␈α
where␈α
the␈αcorresponding␈α
v␈α}alue␈α
is␈α
sh␈α↓o␈α␈wn␈α
in␈α
the␈αrigh␈α␈t
␈β∂␈↓ ↓H␈ε"column.
␈β⊃_

␈β↓H␈↓ ↓$␈∧↓H↓$α
u
␈β↓J␈↓ ↓$␈∧↓J↓$Hα␈↓ "␈∧↓J"Hα␈↓ ↔␈∧↓J↔Hα
␈β↓V␈↓ ¬λ␈ε>A␈α↓b␈α␈out␈α∞De|␈α␈nit␈α␈ion␈α␈s
␈β↓\␈↓ K␈ε"21
␈βα⊃␈↓ ↓$␈∧α⊃↓$α
u
␈βαO␈↓ α-␈ε2F␈α⎇orm␈↓ ∧↔␈ε2V␈α⎇alue
␈βαp␈↓ α-␈∧αpα-αS␈↓ ∧↔␈∧αp∧↔αW
␈βαz␈↓ α-␈ε6E␈↓ αX␈ε"+␈↓ β∧␈ε6E␈↓ ∧↔␈ε(␈↓ ∧G␈ε"+␈↓ ∧s␈ε(
␈ββε␈↓ α@␈ε%1␈↓ β↔␈ε%2␈↓ ∧.␈ε%1␈↓ ¬
␈ε%2
␈ββ%␈↓ α-␈ε6E␈↓ αX␈ε6␈␈↓ β∧␈ε6E␈↓ ∧↔␈ε(␈↓ ∧G␈ε6␈␈↓ ∧s␈ε(
␈ββ2␈↓ α@␈ε%1␈↓ β↔␈ε%2␈↓ ∧.␈ε%1␈↓ ¬
␈ε%2
␈ββP␈↓ α-␈ε"+␈↓ αQ␈ε6E␈↓ ∧↔␈ε(
␈ββ|␈↓ α-␈ε6␈␈↓ αQ␈ε6E␈↓ ∧↔␈ε6␈␈ε(
␈β∧'␈↓ α-␈ε6E␈↓ αP␈ε"*␈↓ αb␈ε6E␈↓ ∧↔␈ε(␈↓ ∧G␈ε6α␈↓ ∧s␈ε(
␈β∧3␈↓ α@␈ε%1␈↓ αu␈ε%2␈↓ ∧.␈ε%1␈↓ ¬
␈ε%2
␈β∧R␈↓ α-␈ε6E␈↓ αP␈ε"/␈↓ αb␈ε6E␈↓ ∧↔␈ε(␈↓ ∧?␈ε"/␈↓ ∧Q␈ε(␈↓ ¬≥␈ε"(unde|ned␈αif␈↓ εo␈ε(␈↓ π ␈ε"=␈α
0)
␈β∧↑␈↓ α@␈ε%1␈↓ αu␈ε%2␈↓ ∧.␈ε%1␈↓ ∧h␈ε%2␈↓ πε␈ε%2
␈β∧⎇␈↓ α-␈ε6E␈↓ β!␈ε6E␈↓ ∧↔␈ε"The␈αin␈α␈teger␈αpart␈αof␈↓ εP␈ε(␈↓ εx␈ε"/␈↓ π
␈ε(␈↓ π2␈ε",␈αwhich␈αm␈α␈ust␈αboth␈αbe␈αin␈α␈tegers.
␈β∧␈␈↓ α\␈ε5DIV
␈β¬
␈↓ α@␈ε%1␈↓ β4␈ε%2␈↓ εg␈ε%1␈↓ π!␈ε%2
␈β¬(␈↓ α-␈ε"(␈↓ α9␈ε6E␈↓ αR␈ε")␈↓ ∧↔␈ε(
␈β¬T␈↓ αe␈ε"(␈↓ αq␈ε6E␈↓ β
␈ε")␈↓ ∧↔␈ε6j␈ε(␈ε6j␈ε",␈αthe␈αabsolute␈αv␈α}alue␈αof␈ε(␈α
␈β¬V␈↓ α-␈ε5A␈α␈BS
␈β¬y␈↓ ∧.␈ε%2
␈β¬␈␈↓ αe␈ε"(␈↓ αq␈ε6E␈↓ β
␈ε")␈↓ ∧↔␈ε(
␈βε↓␈↓ α-␈ε5S␈α␈QR
␈βε*␈↓ αe␈ε"(␈↓ αq␈ε6E␈↓ β
␈ε")␈↓ ∧↔␈ε(sin␈ε"(␈ε(␈ε"),␈ε(␈α␈ε"␈αin␈αradians
␈βε,␈↓ α-␈ε5S␈α␈IN
␈βεU␈↓ αe␈ε"(␈↓ αq␈ε6E␈↓ β
␈ε")␈↓ ∧↔␈ε(cos␈ε"(␈ε(␈ε"),␈ε(␈α␈ε"␈αin␈αradians
␈βεW␈↓ α-␈ε5C␈α␈OS
␈βπ␈↓ αR␈ε"(␈↓ α↑␈ε6E␈↓ αw␈ε")␈↓ ∧↔␈ε(l␈↓ ∧"␈ε(o␈↓ ∧4␈ε(g␈↓ ∧S␈ε"(␈ε(␈ε"),␈ε(␈αε␈ε"␈α
>␈α
0
␈βπα␈↓ α-␈ε5L␈α␈N
␈βπ
␈↓ ∧D␈ε+e
␈βπ%␈↓ ∧&␈ε+
␈βπ,␈↓ αe␈ε"(␈↓ αq␈ε6E␈↓ β
␈ε")␈↓ ∧↔␈ε(e
␈βπ.␈↓ α-␈ε5E␈α␈XP
␈βπV␈↓ ∧↔␈ε6p
␈βπW␈↓ αx␈ε"(␈↓ β∧␈ε6E␈↓ β≥␈ε")␈↓ ∧5␈ε(␈↓ ∧L␈ε",␈ε(␈αε␈ε"␈α
>=␈α
0
␈βπY␈↓ α-␈ε5S␈α␈QRT␈↓ ∧5␈∧πY∧5α↔
␈βπ|␈↓ ∧M␈ε9␈␈ε%1
␈βλα␈↓ β≡␈ε"(␈↓ β*␈ε6E␈↓ βC␈ε")␈↓ ∧↔␈ε(ta␈↓ ∧7␈ε(n␈↓ ∧{␈ε"(␈ε(␈ε"),␈αin␈αrange␈α(␈ε6␈␈↓ ε|␈ε(→␈↓ π∩␈ε"/2,␈↓ πF␈ε(→␈↓ π\␈ε"/2)
␈βλ∧␈↓ α-␈ε5A␈α␈RCTAN
␈βλ<␈↓ α␈ε"A␈α⊃string␈α⊃expression␈↓ ∧U␈ε"is␈α⊃an␈α␈y␈α⊃sequence␈α⊃of␈α⊃sym␈α␈bols␈α⊃enclosed␈α⊃in␈α⊂(single)␈α⊃quotation
␈βλg␈↓ ↓H␈ε"marks.␈α⊂(Still␈αother␈αforms␈αof␈αexpression␈αwill␈αbe␈αdescribed␈αlater.)
␈β	∩␈↓ α␈ε"In␈α⊃the␈α∩table␈α⊃abo␈α␈v␈α␈e,␈α∩the␈α∩righ␈α␈t-hand␈α⊃column␈α⊃lists␈α⊃a␈α∩n␈α␈um␈α␈ber␈α⊃of␈α⊃operations␈α⊃such
␈β	=␈↓ ↓H␈ε"as␈α∂m␈α␈ultiplication␈α⊂and␈α∂|nding␈α⊂square␈α⊂ro␈α↓ots,␈α⊂which␈α⊂occur␈α∂frequen␈α␈tly␈α⊂in␈α∂computation
␈β	h␈↓ ↓H␈ε"and␈α
are␈α∞therefore␈α
made␈α
a␈α␈v␈α}ailable␈α∞as␈ε/␈α
primitiv␈α␈es␈↓ π4␈ε"(operations␈α
which␈α∞do␈α
n␈α↓ot␈α∞ha␈α␈v␈α␈e␈α
to␈α
be
␈β
∀␈↓ ↓H␈ε"programmed␈αfrom␈αsimpler␈αoperations␈αand␈αcommands)␈αin␈αPascal.␈α⊂Some␈αof␈αthem,␈αsuch
␈β
?␈↓ ↓H␈ε"as␈α⊂the␈α⊃arithmetic␈α⊃operations,␈α∩are␈α⊃primitiv␈α␈es␈α⊃of␈α⊂the␈α⊃computer␈α⊃language␈α⊃in␈α␈to␈α⊂which
␈β
j␈↓ ↓H␈ε"Pascal␈α
programs␈α∞are␈α
translated.␈α∃Others,␈α∞such␈α∞as␈α
the␈α∞square␈α
ro␈α↓ot␈α∞operation,␈α∞are␈α
n␈α↓ot
␈β∃␈↓ ↓H␈ε"computer␈α	language␈αλprimitiv␈α␈es;␈α
the␈α	translator␈α	automatically␈α	includes␈α	a␈α	sh␈α↓ort␈αλcomputer
␈β@␈↓ ↓H␈ε"language␈αprogram␈α
to␈α
perform␈α
them,␈αif␈α
they␈α
are␈α
used␈αin␈α
a␈α
Pascal␈α
program.␈α∩The␈αle$-
␈βl␈↓ ↓H␈ε"hand␈αcolumn␈αsh␈α↓o␈α␈ws␈αthe␈αw␈α␈a␈α␈y␈αthat␈αthese␈αoperations␈αare␈αwritten␈αin␈αPascal.␈α∂Sometimes,
␈β↔␈↓ ↓H␈ε"as␈α∂with␈α⊂addition␈α⊂and␈α∂the␈α⊂sin␈α∂function,␈α⊃the␈α⊂Pascal␈α∂n␈α↓otation␈α⊂for␈α⊂the␈α∂function␈α⊂is␈α∂the
␈βB␈↓ ↓H␈ε"familiar␈αw␈α␈a␈α␈y␈αof␈αwriting␈αthe␈α
operation,␈αbut␈αin␈αother␈α
cases,␈αsuch␈αas␈αm␈α␈ultiplication␈αand
␈βm␈↓ ↓H␈ε"square␈α
ro␈α↓ot,␈α
the␈α
limitations␈α
of␈α
computing␈α
equipmen␈α␈t␈α
(especially␈α
the␈αk␈α␈eyboard)␈α
force
␈β
_␈↓ ↓H␈ε"the␈αuse␈αof␈αan␈αunfamiliar␈αn␈α↓otation.␈α⊂W␈α⎇e␈αwill␈αtend␈αto␈αuse␈αlo␈α␈w␈α␈er␈αcase␈αletters␈α(␈↓ 
N␈ε(l␈↓ 
Z␈ε(o␈↓ 
k␈ε(g␈↓ 
␈ε")␈αwhen
␈β
%␈↓ 
|␈ε+e
␈β
D␈↓ ↓H␈ε"talking␈αabout␈αthe␈α
operation␈αitself␈α(seman␈α␈tics),␈α
and␈αcapital␈αletters␈α
(LN)␈αwhen␈αtalking
␈β
o␈↓ ↓H␈ε"about␈αthe␈αw␈α␈a␈α␈y␈αit␈αis␈αexpressed␈αin␈αPascal␈α(syn␈α␈tax).
␈β∞#␈↓ ↓H␈ε2De|nition
␈β∞N␈↓ α␈ε"A␈α∞program␈α∞consists␈α
of␈α∞a␈α∞heading,␈α∞a␈α∞block,␈α∞and␈α∞a␈α
period.␈↓ 	≥␈ε"The␈α∞heading␈α∞is␈α∞of␈α
the
␈β∞y␈↓ ↓H␈ε"form
␈β∂3␈↓ βo␈ε6N␈↓ ∧5␈ε6N␈↓ ∧`␈ε",␈↓ ∧p␈ε6N␈↓ ¬~␈ε",␈↓ ¬*␈ε".␈αε.␈αε.␈↓ ¬Z␈ε",␈↓ ¬j␈ε6N
␈β∂5␈↓ αX␈ε5PR␈α␈OGRAM␈↓ ∧"␈ε5(␈↓ ε→␈ε5)␈α␈;
␈β∂?␈↓ ∧O␈ε%1␈↓ ¬
␈ε%2␈↓ ε∧␈ε+n
␈β⊃∨

␈β↓H␈↓ ↓$␈∧↓H↓$α
u
␈β↓J␈↓ ↓$␈∧↓J↓$Hα␈↓ α→␈∧↓Jα→Hα␈↓ ↔␈∧↓J↔Hα
␈β↓V␈↓ εβ␈ε>A␈α↓b␈α␈out␈α∞De|␈α␈nit␈α␈ion␈α␈s
␈β↓\␈↓ ↓M␈ε"22
␈βα⊃␈↓ ↓$␈∧α⊃↓$α
u
␈βαO␈↓ ↓H␈ε"where␈↓ α3␈ε6N␈↓ αc␈ε"is␈α⊂the␈α∂name␈α⊂of␈α∂the␈α⊂program,␈α⊂and␈↓ ππ␈ε6N␈↓ π2␈ε",␈α⊂etc,␈α⊃are␈α∂the␈α⊂names␈α⊂of␈α∂the␈α⊂|les␈α∂the
␈βα[␈↓ π!␈ε%1
␈βαz␈↓ ↓H␈ε"program␈α∞mak␈α␈es␈α∂use␈α∞of.␈α_Ev␈α␈en␈α∞if␈α∞n␈α↓ot␈α∂men␈α␈tioned␈α∞in␈α∂the␈α∞heading,␈α∂|les␈α∂named␈α∞INPUT
␈ββ%␈↓ ↓H␈ε"and␈α∞OUTPUT␈α∂ma␈α␈y␈α∂be␈α∂used␈α∂by␈α∞the␈α∂program.␈α→If␈α∞n␈α↓o␈α∂other␈α∂|les␈α∂than␈α∂OUTPUT␈α∞and
␈ββP␈↓ ↓H␈ε"INPUT␈αare␈αused,␈αthe␈αheading␈αma␈α␈y␈αbe␈αsimpli|ed␈αto
␈β∧(␈↓ αX␈ε5PR␈α␈OGRAM␈α∪name␈α␈;
␈β∧{␈↓ ↓H␈ε"follo␈α␈w␈α␈ed,␈αas␈αbefore,␈αby␈αa␈αblock␈αand␈αa␈αperiod.
␈β¬<␈↓ ↓H␈ε2De|nition
␈β¬g␈↓ α␈ε"A␈αblock␈↓ β∩␈ε"(␈↓ β≡␈ε6B␈↓ β7␈ε")␈αis␈αof␈αthe␈αform
␈βε<␈↓ αX␈ε6D␈↓ β#␈ε6D␈↓ βn␈ε".␈αε.␈αε.␈↓ ∧>␈ε6D␈↓ εε␈ε6C␈↓ εS␈ε6C␈↓ π ␈ε".␈αε.␈αε.␈↓ πo␈ε6C
␈βε>␈↓ α⎇␈ε5;␈↓ βH␈ε5;␈↓ ∧_␈ε5;␈↓ ∧o␈ε5;␈α∪BEG␈α␈IN␈↓ ε-␈ε5;␈↓ εz␈ε5;␈↓ πJ␈ε5;␈↓ λ-␈ε5EN␈α␈D
␈βεI␈↓ αl␈ε%1␈↓ β8␈ε%2␈↓ ∧S␈ε+m␈↓ ε≤␈ε%1␈↓ εi␈ε%2␈↓ λε␈ε+n
␈βπ∩␈↓ ↓H␈ε"where␈↓ α0␈ε6D␈↓ αU␈ε",␈αetc,␈αare␈αdeclarations␈αand␈↓ ¬y␈ε6C␈↓ ε ␈ε",␈αetc,␈αare␈αcommands␈α(statemen␈α␈ts).
␈βπ≡␈↓ αD␈ε%1␈↓ ε∂␈ε%1
␈βπ=␈↓ α␈ε"T␈α⎇o␈αexecute␈α
a␈αblock,␈α
one␈αexecutes␈α
the␈αcommands␈α
in␈αthe␈α
order␈αwritten.␈α⊃V␈α⎇ariables
␈βπh␈↓ ↓H␈ε"declared␈αin␈αa␈αblock␈αma␈α␈y␈αonly␈αbe␈αreferred␈αto␈αin␈αthat␈αblock.
␈βλ(␈↓ ↓H␈ε2De|nition
␈βλT␈↓ α␈ε"An␈α⊂iden␈α␈ti|er␈↓ βe␈ε"(␈↓ βq␈ε6I␈↓ ∧	␈ε")␈α⊂is␈α⊂a␈α⊂sequence␈α⊂of␈α⊂letters␈α⊂and/or␈α⊂digits,␈α⊃starting␈α⊂with␈α⊂a␈α⊂letter.
␈βλ␈␈↓ ↓H␈ε"Iden␈α␈ti|ers,␈αth␈α␈us␈αfar,␈αha␈α␈v␈α␈e␈αbeen␈αin␈α␈troduced␈αonly␈αas␈αnames␈αof␈αv␈α}ariables.
␈β	*␈↓ α␈ε"The␈αiden␈α␈ti|ers␈αare
␈β	f␈↓ β6␈ε#.␈αε.␈α¬.␈↓ ¬?␈ε#.␈αε.␈αε.␈↓ π⊗␈ε#.␈αε.␈α¬.
␈β	h␈↓ αP␈ε∃A,B,C,␈↓ βb␈ε∃,X,Y,Z,AA,AB,␈↓ ¬l␈ε∃,AZ,A0,A1,␈↓ πB␈ε∃,A9,
␈β

␈↓ ββ␈ε#.␈αε.␈α¬.␈↓ βs␈ε#.␈αε.␈αε.␈↓ ∧d␈ε#.␈α¬.␈αε.␈↓ ε_␈ε#.␈αε.␈αε.
␈β
∂␈↓ αP␈ε∃BA,␈↓ β/␈ε∃,B9,␈↓ ∧ ␈ε∃,ZA,␈↓ ¬⊂␈ε∃,Z9,AAA,␈↓ εE␈ε∃,
␈β
5␈↓ βX␈ε#.␈αε.␈α¬.␈↓ ¬≥␈ε#.␈αε.␈αε.␈↓ π|␈ε#.␈αε.␈α¬.
␈β
7␈↓ αP␈ε∃EXAMPLE,␈↓ ∧∧␈ε∃,EX12A83,␈↓ ¬J␈ε∃,YETLONGEREXAMPLE,
␈β
\␈↓ 	w␈ε#.␈αε.␈αε.
␈β
↑␈↓ αP␈ε∃VERYMUCHLONGEREXAMPLEWHICHYOUWOULDQUICKLYTIREOFWRITING,
␈β≠␈↓ α␈ε"W␈α⎇ords␈α∂which␈α⊂ha␈α␈v␈α␈e␈α∂a␈α∂|xed␈α⊂meaning␈α∂in␈α∂Pascal,␈α⊃such␈α∂as␈↓ 
`␈ε"and
␈β≥␈↓ 	␈ε5BEGIN,␈α∪F␈α␈OR,␈↓ )␈ε5END,
␈βF␈↓ ↓H␈ε"ma␈α␈y␈αn␈α↓ot␈αbe␈αused␈αas␈αiden␈α␈ti|ers.␈α⊂The␈ε/␈αPascal␈αUser␈αMan␈α␈ual␈ε",␈αpage␈α109,␈αcon␈α␈tains␈αa␈αlist␈αof
␈βq␈↓ ↓H␈ε"these␈ε/␈αreserv␈α␈ed␈αw␈α␈ords␈ε".␈↓ ∧%␈ε"(The␈αlist␈αma␈α␈y␈αalso␈αbe␈αfound␈αin␈ε/␈αPascal␈αat␈αL␈α␈OTS␈ε",␈αpage␈α54.)
␈β2␈↓ ↓H␈ε2De|nition
␈β]␈↓ α␈ε"A␈ε/␈αdeclaration␈↓ βl␈ε"(␈↓ βx␈ε6D␈↓ ∧∩␈ε")␈αis␈αof␈αthe␈αform
␈β
2␈↓ β#␈ε6I␈↓ βl␈ε6I␈↓ ∧4␈ε".␈αε.␈αε.␈↓ ¬
␈ε6I
␈β
4␈↓ αX␈ε5VA␈α␈R␈↓ βF␈ε5,␈↓ ∧∂␈ε5,␈↓ ∧d␈ε5,␈↓ ¬C␈ε5:␈α∪INTEGER
␈β
?␈↓ β5␈ε%1␈↓ β}␈ε%2␈↓ ¬≤␈ε+n
␈β∞λ␈↓ ↓H␈ε"or
␈β∞]␈↓ β#␈ε6I␈↓ βl␈ε6I␈↓ ∧4␈ε".␈αε.␈αε.␈↓ ¬
␈ε6I
␈β∞←␈↓ αX␈ε5VA␈α␈R␈↓ βF␈ε5,␈↓ ∧∂␈ε5,␈↓ ∧d␈ε5,␈↓ ¬C␈ε5:␈α∪REAL
␈β∞j␈↓ β5␈ε%1␈↓ β}␈ε%2␈↓ ¬≤␈ε+n
␈β⊃_

␈β↓H␈↓ ↓$␈∧↓H↓$α
u
␈β↓J␈↓ ↓$␈∧↓J↓$Hα␈↓ "␈∧↓J"Hα␈↓ ↔␈∧↓J↔Hα
␈β↓V␈↓ ¬λ␈ε>A␈α↓b␈α␈out␈α∞De|␈α␈nit␈α␈ion␈α␈s
␈β↓\␈↓ K␈ε"23
␈βα⊃␈↓ ↓$␈∧α⊃↓$α
u
␈βαO␈↓ ↓H␈ε2De|nition
␈βα}␈↓ α␈ε"A␈ε/␈αv␈α}ariable␈↓ β7␈ε"(␈↓ βC␈ε6V␈↓ β`␈ε")␈αis␈αan␈αiden␈α␈ti|er␈αwhich␈αhas␈αappeared␈αin␈αsuch␈αa␈αdeclaration.␈α∂W␈α⎇e␈αwill
␈ββ)␈↓ ↓H␈ε"also␈αencoun␈α␈ter␈αother␈αkinds␈αof␈αv␈α}ariables␈αand␈αdeclarations.
␈β∧β␈↓ ↓H␈ε2Spacing
␈β∧D␈↓ α␈ε"In␈αthe␈αpreparation␈αof␈αa␈αprogram,␈αone␈αma␈α␈y␈αfreely␈αuse␈αblank␈αspaces,␈αor␈αev␈α␈en␈αen␈α␈tire
␈β∧o␈↓ ↓H␈ε"blank␈α
lines.␈α⊂Lik␈α␈e␈αthe␈α
use␈αof␈αparagraphs,␈αmargins␈αand␈α
punctuation␈αin␈αEnglish␈α
writing,
␈β¬~␈↓ ↓H␈ε"this␈α∂is␈α∂an␈α∂art␈α∂of␈α⊂some␈α∂importance␈α∂in␈α∂main␈α␈taining␈α∂in␈α␈telligibilit␈α␈y.␈α~Some␈α∂w␈α␈a␈α␈ys␈α∂to␈α∂use
␈β¬E␈↓ ↓H␈ε"spacing␈α∂e{ectiv␈α␈ely␈α⊂will␈α∂be␈α⊂discussed␈α∂later.␈α≠F␈α⎇or␈α∂the␈α⊂presen␈α␈t,␈α⊂w␈α␈e␈α⊂need␈α∂only␈α⊂sa␈α␈y␈α∂that
␈β¬q␈↓ ↓H␈ε"spaces␈α
ma␈α␈y␈α
n␈α↓ot␈α
be␈α
inserted␈α
in␈α␈to␈α
a␈α
n␈α␈um␈α␈ber,␈α
w␈α␈ord,␈α∞or␈α
v␈α}ariable,␈α
and␈α
that␈α
if␈α
a␈α
n␈α␈um␈α␈ber,
␈βε≤␈↓ ↓H␈ε"w␈α␈ord,␈αor␈αv␈α}ariable␈αis␈αimmediately␈αfollo␈α␈w␈α␈ed␈αby␈αan␈α↓other␈αof␈αthese,␈αthere␈αm␈α␈ust␈αbe␈αat␈αleast
␈βεG␈↓ ↓H␈ε"one␈αspace␈αbet␈α␈w␈α␈een␈αthem.␈α⊂Th␈α␈us␈αone␈αm␈α␈ust␈αn␈α↓ot␈αwrite
␈βπ*␈↓ αX␈ε5FO␈α␈RI:=ATO100␈α␈DOWRITE(I,␈α␈1/I)
␈βλ
␈↓ ↓H␈ε"but␈αrather
␈βλm␈↓ αX␈ε5FO␈α␈R␈α∪I:=A␈α∪TO␈α∩100␈α∪DO␈α∪WRI␈α␈TE(I,1/I)
␈β	L␈↓ ↓H␈ε"where␈α∞only␈α∞the␈α∞necessary␈α∞spaces␈α∞ha␈α␈v␈α␈e␈α∂been␈α∞inserted.␈α⊗The␈α∞end␈α∂of␈α∞a␈α∞line␈α∞coun␈α␈ts␈α∞as␈α∞a
␈β	w␈↓ ↓H␈ε"space.␈α∪(This␈α
fact␈α
limits␈α
iden␈α␈ti|ers␈α
to␈α
about␈α
80␈α
characters.)␈α∪In␈α
general,␈α
if␈α
a␈α
program
␈β
#␈↓ ↓H␈ε"is␈α∩legible,␈α∀the␈α∪use␈α∩of␈α∪spaces␈α∩is␈α∪probably␈α∩correct.␈α$Commas␈α∩are␈α∩n␈α↓ot␈α∪permitted␈α∩as
␈β
N␈↓ ↓H␈ε"punctuation␈αwithin␈αa␈αn␈α␈um␈α␈ber;␈αone␈αm␈α␈ust␈αn␈α↓ot␈αwrite␈αa␈αn␈α␈um␈α␈ber␈αas
␈β1␈↓ αX␈ε51,␈α␈234,567.89␈α␈0
␈β⊂␈↓ ↓H␈ε"but␈αrather
␈βt␈↓ αX␈ε512␈α␈34567.890
␈β∞α␈↓ ↓H␈ε2Exercise
␈β∞/␈↓ α␈ε$What␈α
does␈α
the␈α
program
␈β∞q␈↓ αX␈ε⊗WRITE(1,␈α↓234,567.␈α↓890)
␈β∂8␈↓ ↓H␈ε$do?
␈β⊃_

␈β↓H␈↓ ↓$␈∧↓H↓$α
u
␈β↓J␈↓ ↓$␈∧↓J↓$Hα␈↓ α→␈∧↓Jα→Hα␈↓ ↔␈∧↓J↔Hα
␈β↓V␈↓ εβ␈ε>A␈α↓b␈α␈out␈α∞De|␈α␈nit␈α␈ion␈α␈s
␈β↓\␈↓ ↓M␈ε"24
␈βα⊃␈↓ ↓$␈∧α⊃↓$α
u
␈βαO␈↓ ↓H␈ε2Prin␈α␈ting␈αF␈α⎇ormat
␈ββ␈↓ α␈ε"In␈α␈teger␈α
v␈α}alues␈α
are␈α
the␈α
v␈α}alues␈α
of␈α
expressions␈α
written␈α
with␈α↓out␈α
using␈α	decimal␈α
poin␈α␈ts,
␈ββ7␈↓ ↓H␈ε"using␈α
only␈α
in␈α␈teger␈αv␈α}ariables,␈αand␈α
using␈α
only␈αthe␈α
functions␈αand␈α
operators␈α
+,␈α-,␈α*,␈α
DIV,
␈ββb␈↓ ↓H␈ε"ABS,␈α
and␈α
a␈α
few␈αothers␈α
w␈α␈e␈α
will␈α
meet␈αlater.␈α∂In␈α␈teger␈α
v␈α}alues␈↓ λ0␈ε"are␈αprin␈α␈ted␈α
as␈α
sev␈α␈eral␈α
blanks,
␈β∧∞␈↓ ↓H␈ε"a␈α∞min␈α␈us␈α∞sign␈α∂if␈α∞needed,␈α∂and␈α∞sev␈α␈eral␈α∂decimal␈α∞digits,␈α∂making␈α∞up␈α∂t␈α␈w␈α␈elv␈α␈e␈α∞characters␈α∞in
␈β∧9␈↓ ↓H␈ε"all,␈α∞so␈α∂up␈α∞to␈α∞elev␈α␈en␈α∞in␈α␈tegers␈α∂can␈α∞appear␈α∞across␈α∞a␈α∂prin␈α␈ted␈α∞page,␈α∂up␈α∞to␈α∞six␈α∞across␈α∞the
␈β∧d␈↓ ↓H␈ε"terminal␈αscreen.
␈β¬∂␈↓ α␈ε"\Real"␈α	v␈α}alues␈α
are␈α	the␈α
v␈α}alues␈α	of␈α	other␈α
n␈α␈umerical␈α	expressions,␈α
e.g.␈α∂th␈α↓ose␈α	con␈α␈taining
␈β¬:␈↓ ↓H␈ε"a␈α
decimal␈α
poin␈α␈t␈α
(13.53,␈α
or␈α
ev␈α␈en␈α
13.00),␈α
a␈α∞`/',␈α
a␈α
SIN,␈α
COS,␈α
SQR␈α⎇T,␈α
etc.,␈α
or␈α
a␈α
v␈α}ariable
␈β¬f␈↓ ↓H␈ε"declared␈αto␈αbe␈αREAL.
␈βε⊃␈↓ α␈ε"Real␈αv␈α}alues␈αare␈αprin␈α␈ted␈αin␈αa␈αform␈αof␈αscien␈α␈ti|c␈αn␈α↓otation,␈αas␈αexempli|ed␈αbelo␈α␈w:
␈βεX␈↓ αe␈ε5Value␈↓ λ¬␈ε5Printed␈α∩Form
␈βπ↓␈↓ αe␈ε"1␈↓ λ¬␈ε6t␈↓ 	o␈ε6tttt
␈βπβ␈↓ λ∨␈ε51.00000␈α␈0000
␈βπ,␈↓ αe␈ε"22/7␈↓ λ¬␈ε6t␈↓ 	o␈ε6tttt
␈βπ.␈↓ λ∨␈ε53.14285␈α␈7143
␈βπQ␈↓ εq␈ε%3
␈βπW␈↓ αe␈ε6␈␈ε"1234.56789(␈ε(i␈α↓e␈ε",␈αε1.23456789␈ε6␈αλα␈ε"␈αλ1␈↓ ε←␈ε"0␈↓ πα␈ε")
␈βπY␈↓ λ¬␈ε5-1.2345␈α␈67890E+03
␈βπ|␈↓ πβ␈ε9␈␈ε%␈α␈3
␈βλα␈↓ αe␈ε"0.00123456789(␈ε(i␈α↓e␈ε",␈αε1.23456789␈ε6␈αλα␈ε"␈αλ1␈↓ εq␈ε"0␈↓ π1␈ε")␈↓ λ¬␈ε6t
␈βλ∧␈↓ λ∨␈ε51.23456␈α␈7890E-03
␈βλC␈↓ ↓H␈ε"The␈αformat␈αconsists␈αof␈αa␈αblank␈αor␈αmin␈α␈us␈αsign,␈αa␈αten␈αdigit␈αn␈α␈um␈α␈ber␈αwith␈αdecimal␈αpoin␈α␈t
␈βλn␈↓ ↓H␈ε"a$er␈αthe␈α|rst␈αdigit,␈α\␈↓ ∧'␈ε"",␈αa␈αt␈α␈w␈α␈o␈αdigit␈αpo␈α␈w␈α␈er␈αof␈αten.␈α⊂If␈αthe␈αn␈α␈um␈α␈ber␈αlies␈αbaet␈α␈w␈α␈een␈α1␈αand
␈βλp␈↓ ∧∀␈ε5E
␈β	→␈↓ ↓H␈ε"9.999999999,␈αthe␈α
po␈α␈w␈α␈er␈αof␈αten␈α
is␈αomitted.␈α⊃In␈α
all,␈αsixteen␈α
characters␈αare␈α
needed␈αfor␈αa
␈β	E␈↓ ↓H␈ε"real␈αv␈α}alue,␈αso␈αup␈αto␈αeigh␈α␈t␈αreal␈αv␈α}alues␈αcan␈αappear␈αacross␈αa␈αprin␈α␈ted␈αpage,␈αand␈αup␈αto␈α|v␈α␈e
␈β	p␈↓ ↓H␈ε"across␈αthe␈αterminal␈αscreen.
␈β
-␈↓ ↓H␈ε2String␈αConstan␈α␈ts
␈β
j␈↓ α␈ε"In␈α∞addition␈α
to␈α∞n␈α␈umerical␈α
v␈α}alues,␈α∞w␈α␈e␈α∞ha␈α␈v␈α␈e␈α
seen␈α∞that␈α
one␈α∞ma␈α␈y␈α
prin␈α␈t␈α∞v␈α}alues␈α
which
␈β∃␈↓ ↓H␈ε"are␈α∞sequences␈α∞of␈α
sym␈α␈bols,␈α∂or␈ε/␈α∞characters␈ε".␈↓ εX␈ε"Such␈α∞v␈α}alues␈α
are␈α∞called␈ε/␈α∞strings␈↓ 
.␈ε";␈↓ 
G␈ε"w␈α␈ords,␈α∞and
␈β@␈↓ ↓H␈ε"decimal␈α∂represen␈α␈tations␈α⊂of␈α⊂n␈α␈um␈α␈bers,␈α⊃are␈α⊂particular␈α⊂kinds␈α∂of␈α⊂strings.␈α≤The␈α∂constan␈α␈t
␈βk␈↓ ↓H␈ε"represen␈α␈ting␈α⊂a␈α⊃particular␈α⊂string␈α⊃is␈α⊃written␈α⊂by␈α⊃enclosing␈α⊃the␈α⊂string␈α⊃bet␈α␈w␈α␈een␈α⊂double
␈β↔␈↓ ↓H␈ε"quote␈α∞marks.␈α↔Since␈α∞the␈α∞arithmetical␈α∂operators␈α∞and␈α∞functions␈α∞with␈α∂which␈α∞w␈α␈e␈α∞are␈α∞as
␈βB␈↓ ↓H␈ε"y␈α␈et␈αacquain␈α␈ted␈αare␈αobviously␈αn␈α↓ot␈αapplicable␈αto␈αstrings,␈αthe␈αonly␈αuse␈αwhich␈αw␈α␈e␈αcan␈αas
␈βm␈↓ ↓H␈ε"y␈α␈et␈αmak␈α␈e␈αof␈αstrings␈αis␈αto␈αprin␈α␈t␈αthem.␈α⊂F␈α⎇or␈αexample,␈αthe␈αprogram:
␈β
*␈↓ αP␈ε∃WRITELN(1.5,'1.5',2*3,'2*3');
␈β
Q␈↓ αP␈ε∃WRITELN('ABCDEF+-*/1234')
␈β∞
␈↓ ↓H␈ε"causes␈αthe␈αprin␈α␈ting␈αof␈αthe␈αfollo␈α␈wing␈αlines:
␈β∞L␈↓ ↓H␈∧∞L↓Hα
-
␈β∞N␈↓ ↓H␈∧∞N↓Hλα␈↓ s␈∧∞Nsλα
␈β∞U␈↓ ↓H␈∧∞U↓Hα
-
␈β∞d␈↓ αP␈ε∃1.500000␈↓ ∧`␈ε∃1.5␈↓ ε←␈ε∃6␈↓ πx␈ε∃2*3
␈β∂␈↓ αP␈ε∃ABCDEF+-*/1234
␈β∂G␈↓ ↓H␈∧∂G↓Hα
-
␈β∂H␈↓ ↓H␈∧∂H↓Hλα␈↓ s␈∧∂Hsλα
␈β∂O␈↓ ↓H␈∧∂O↓Hα
-
␈β⊃_

␈β↓H␈↓ ↓$␈∧↓H↓$α
u
␈β↓J␈↓ ↓$␈∧↓J↓$Hα␈↓ "␈∧↓J"Hα␈↓ ↔␈∧↓J↔Hα
␈β↓V␈↓ ¬λ␈ε>A␈α↓b␈α␈out␈α∞De|␈α␈nit␈α␈ion␈α␈s
␈β↓\␈↓ K␈ε"25
␈βα⊃␈↓ ↓$␈∧α⊃↓$α
u
␈βαO␈↓ α␈ε"When␈α∀writing␈α∪a␈α∀program␈α∪using␈α∀string␈α∪constan␈α␈ts␈α∀which␈α∪con␈α␈tain␈α∀blanks,␈α∃it␈α∪is
␈βαz␈↓ ↓H␈ε"customary␈αto␈αuse␈αthe␈α
sym␈α␈bol␈α\␈ε6t␈ε""␈αto␈αstand␈αfor␈α
a␈αblank,␈αand␈αthen␈α
to␈αt␈α␈ype␈αthe␈α\␈ε6t␈ε""␈αas
␈ββ%␈↓ ↓H␈ε"a␈αblank.␈α⊂F␈α⎇or␈αexample,␈αto␈αmak␈α␈e␈αa␈αprogram␈αprin␈α␈t
␈ββd␈↓ ↓H␈∧βd↓Hα
-
␈ββf␈↓ ↓H␈∧βf↓Hλα␈↓ s␈∧βfsλα
␈ββm␈↓ ↓H␈∧βm↓Hα
-
␈ββ|␈↓ αr␈ε∃*
␈β∧$␈↓ αa␈ε∃*␈↓ ββ␈ε∃*
␈β∧K␈↓ αP␈ε∃*␈↓ β∀␈ε∃*
␈β¬ε␈↓ ↓H␈∧¬ε↓Hα
-
␈β¬λ␈↓ ↓H␈∧¬λ↓Hλα␈↓ s␈∧¬λsλα
␈β¬∂␈↓ ↓H␈∧¬∂↓Hα
-
␈β¬:␈↓ ↓H␈ε"one␈αw␈α␈ould␈αwrite␈αthe␈αprogram
␈βε∩␈↓ βi␈ε7tt
␈βε∀␈↓ αP␈ε∃WRITELN('␈↓ ∧→␈ε∃*');
␈βε9␈↓ βi␈ε7t␈↓ ∧∩␈ε7t
␈βε;␈↓ αP␈ε∃WRITELN('␈↓ ∧↓␈ε∃*␈↓ ∧*␈ε∃*');
␈βεa␈↓ βz␈ε7ttt
␈βεc␈↓ αP␈ε∃WRITELN('*␈↓ ∧B␈ε∃*')
␈βπX␈↓ ↓H␈ε"and␈αthen␈αt␈α␈ype␈αit␈αat␈αthe␈αterminal␈αk␈α␈eyboard
␈βλ2␈↓ αP␈ε∃WRITELN('␈↓ ∧␈ε∃*');
␈βλY␈↓ αP␈ε∃WRITELN('␈↓ βz␈ε∃*␈↓ ∧≤␈ε∃*');
␈β	↓␈↓ αP␈ε∃WRITELN('*␈↓ ∧-␈ε∃*')
␈β5␈↓ ↓H␈ε2Example
␈β|␈↓ α␈ε"T␈α⎇o␈αprin␈α␈t␈αthe␈αsquare␈αlik␈α␈e␈αthat␈αsh␈α↓o␈α␈wn␈αbelo␈α␈w,␈αin␈αa␈αlarger␈αsize,␈αsa␈α␈y␈αeigh␈α␈t␈αinches␈αon␈αa
␈β'␈↓ ↓H␈ε"side,
␈βf␈↓ ↓H␈∧f↓Hα
-
␈βh␈↓ ↓H␈∧h↓Hλα␈↓ s␈∧hsλα
␈βo␈↓ ↓H␈∧o↓Hα
-
␈β}␈↓ αP␈ε∃**********
␈β
&␈↓ αP␈ε∃*␈↓ βi␈ε∃*
␈β
M␈↓ αP␈ε∃*␈↓ βi␈ε∃*
␈β
u␈↓ αP␈ε∃*␈↓ βi␈ε∃*
␈β∞≥␈↓ αP␈ε∃*␈↓ βi␈ε∃*
␈β∞D␈↓ αP␈ε∃**********
␈β∞␈␈↓ ↓H␈∧∞␈↓Hα
-
␈β∂↓␈↓ ↓H␈∧∂↓↓Hλα␈↓ s␈∧∂↓sλα
␈β∂λ␈↓ ↓H␈∧∂λ↓Hα
-
␈β∂3␈↓ ↓H␈ε"w␈α␈e␈αcould␈αwrite␈αthe␈αprogram
␈β⊃∨

␈β↓H␈↓ ↓$␈∧↓H↓$α
u
␈β↓J␈↓ ↓$␈∧↓J↓$Hα␈↓ α→␈∧↓Jα→Hα␈↓ ↔␈∧↓J↔Hα
␈β↓V␈↓ εβ␈ε>A␈α↓b␈α␈out␈α∞De|␈α␈nit␈α␈ion␈α␈s
␈β↓\␈↓ ↓M␈ε"26
␈βα⊃␈↓ ↓$␈∧α⊃↓$α
u
␈βαN␈↓ αP␈ε∃FOR␈↓ β∀␈ε∃I:=␈↓ βX␈ε∃1␈↓ βz␈ε∃STEP␈↓ ∧O␈ε∃1␈↓ ∧q␈ε∃UNTIL␈↓ ¬W␈ε∃80␈↓ ε
␈ε∃DO
␈βαu␈↓ ββ␈ε∃WRITE('*');
␈ββ≥␈↓ αP␈ε∃WRITELN;
␈ββD␈↓ αP␈ε∃FOR␈↓ β∀␈ε∃I:=␈↓ βX␈ε∃1␈↓ βz␈ε∃STEP␈↓ ∧O␈ε∃1␈↓ ∧q␈ε∃UNTIL␈↓ ¬W␈ε∃46␈↓ ε
␈ε∃DO
␈ββl␈↓ ββ␈ε∃BEGIN
␈β∧∀␈↓ ββ␈ε∃WRITE('*');
␈β∧;␈↓ ββ␈ε∃FOR␈↓ βG␈ε∃J:=1␈↓ ∧≤␈ε∃STEP␈↓ ∧q␈ε∃1␈↓ ¬∪␈ε∃UNTIL␈↓ ¬y␈ε∃78␈↓ ε,␈ε∃DO
␈β∧a␈↓ ∧-␈ε7t
␈β∧c␈↓ β6␈ε∃WRITE('␈↓ ∧E␈ε∃');
␈β¬
␈↓ ββ␈ε∃WRITELN('*');
␈β¬2␈↓ ββ␈ε∃END;
␈β¬Z␈↓ αP␈ε∃FOR␈↓ β∀␈ε∃I:=1␈↓ βi␈ε∃STEP␈↓ ∧>␈ε∃1␈↓ ∧`␈ε∃UNTIL␈↓ ¬F␈ε∃80␈↓ ¬y␈ε∃DO
␈βε↓␈↓ ββ␈ε∃WRITE('*');
␈βε)␈↓ αP␈ε∃WRITELN;
␈βεf␈↓ α␈ε"(The␈α⊃last␈α⊃line␈α⊃k␈α␈eeps␈α⊃an␈α␈y␈α⊂later␈α⊃prin␈α␈ting␈α⊃from␈α⊃going␈α⊃on␈α⊃the␈α⊃bottom␈α⊃line␈α⊃of␈α⊂the
␈βπ⊃␈↓ ↓H␈ε"square.)
␈β⊃_

␈β↓H␈↓ ↓$␈∧↓H↓$α
u
␈β↓J␈↓ ↓$␈∧↓J↓$Hα␈↓ "␈∧↓J"Hα␈↓ ↔␈∧↓J↔Hα
␈β↓V␈↓ ∧O␈ε>Pro␈α␈blem␈α∞Decom␈α␈pos␈α␈iti␈α␈on
␈β↓\␈↓ K␈ε"27
␈βα⊃␈↓ ↓$␈∧α⊃↓$α
u
␈βα[␈↓ ↓H␈ε>Pro␈α␈blem␈α∞Decom␈α␈pos␈α␈iti␈α␈on.
␈ββ'␈↓ α␈ε"Let␈α∂us␈α∞consider␈α∂the␈α∞problem␈α∂of␈α∞prin␈α␈ting␈α∂a␈α∂small␈α∞table␈α∂of␈α∞natural␈α∂logarithms␈α∞of
␈ββR␈↓ ↓H␈ε"the␈αn␈α␈um␈α␈bers␈αfrom␈α10␈αto␈α99.␈α⊂En␈α␈vision␈αthe␈αgeneral␈αappearance␈αof␈αthe␈αtable␈αas
␈β∧⊃␈↓ ↓H␈∧∧⊃↓Hα
-
␈β∧∪␈↓ ↓H␈∧∧∪↓Hλα␈↓ s␈∧∧∪sλα
␈β∧~␈↓ ↓H␈∧∧~↓Hα
-
␈β∧)␈↓ ∧`␈ε∃TABLE␈↓ ¬F␈ε∃OF␈↓ ¬y␈ε∃LOGARITHMS
␈β∧x␈↓ βG␈ε∃0␈↓ ∧`␈ε∃1␈↓ ¬W␈ε∃2␈↓ ε←␈ε∃3␈↓ πx␈ε∃4
␈β¬E␈↓ ¬W␈ε#.␈αε.␈αε.
␈β¬G␈↓ αP␈ε∃10␈↓ β%␈ε∃log␈↓ βi␈ε∃10␈↓ ∧>␈ε∃log␈↓ ¬α␈ε∃11␈↓ πJ␈ε∃log␈↓ λ∞␈ε∃14
␈β¬m␈↓ ¬W␈ε#.␈αε.␈αε.
␈β¬o␈↓ αP␈ε∃15␈↓ β%␈ε∃log␈↓ βi␈ε∃15␈↓ ∧>␈ε∃log␈↓ ¬α␈ε∃16␈↓ πJ␈ε∃log␈↓ λ∞␈ε∃19
␈βε↔␈↓ αP␈ε∃20␈↓ β%␈ε∃log␈↓ βi␈ε∃20
␈βε>␈↓ αP␈ε∃25␈↓ β%␈ε∃log␈↓ βi␈ε∃25
␈βεf␈↓ αP␈ε∃30␈↓ β%␈ε∃log␈↓ βi␈ε∃30
␈βπ
␈↓ αP␈ε∃.
␈βπ5␈↓ αP␈ε∃.
␈βπ]␈↓ αP␈ε∃.
␈βλ∧␈↓ αP␈ε∃95␈↓ β%␈ε∃log␈↓ βi␈ε∃95␈↓ πV␈ε∃log␈↓ λ~␈ε∃99
␈βλ?␈↓ ↓H␈∧λ?↓Hα
-
␈βλA␈↓ ↓H␈∧λA↓Hλα␈↓ s␈∧λAsλα
␈βλH␈↓ ↓H␈∧λH↓Hα
-
␈βλ`␈↓ α␈ε"If␈α
w␈α␈e␈α
had␈αa␈α␈v␈α}ailable␈α
a␈α
fan␈α␈tastically␈α
rich␈α
and␈αexpressiv␈α␈e␈α
programming␈α
language,␈α
w␈α␈e
␈β	␈↓ ↓H␈ε"migh␈α␈t␈αwrite␈αin␈αit␈αsimply
␈β	|␈↓ λq␈ε".␈αε.␈αε.
␈β	}␈↓ αX␈ε5WR␈α␈ITE␈α∪A␈α∪TABL␈α␈E␈α∪OF␈α∪LOGAR␈α␈ITHMS␈α∪WITH␈α∩HEADINGS␈↓ 	!␈ε5,␈α∪etc.
␈β
v␈↓ α␈ε"As␈α∪w␈α␈e␈α∪do␈α∪n␈α↓ot,␈α∀w␈α␈e␈α∪m␈α␈ust␈α∪repeatedly␈α∪decompose␈α∪the␈α∪task␈α∪in␈α␈to␈α∪sequences,␈α∀and
␈β"␈↓ ↓H␈ε"iterations,␈α∞of␈α∞simpler␈α
tasks,␈α∂un␈α␈til␈α∞w␈α␈e␈α
ha␈α␈v␈α␈e␈α∞reduced␈α∞it␈α∞to␈α
tasks␈α∞each␈α∞of␈α∞which␈α∞can␈α
be
␈βM␈↓ ↓H␈ε"carried␈αout␈αby␈αa␈αsingle␈αcommand␈αin␈αPascal.
␈β↓␈↓ α␈ε"W␈α⎇e␈α⊂begin␈α⊂by␈α⊂observing␈α⊂that␈α⊂the␈α∂|rst␈α⊂t␈α␈w␈α␈o␈α⊂lines␈α⊂of␈α⊂the␈α⊂table,␈α⊃being␈α⊂a␈α⊂title␈α∂and
␈β,␈↓ ↓H␈ε"heading,␈α⊂are␈α⊂completely␈α∂di{eren␈α␈t␈α⊂in␈α⊂structure␈α∂from␈α⊂the␈α∂rest.␈α≠Because␈α⊂the␈α∂prin␈α␈ting
␈βW␈↓ ↓H␈ε"mechanism␈α
prin␈α␈ts␈α
one␈αline␈α
a$er␈αan␈α↓other,␈α
w␈α␈e␈αma␈α␈y␈α
decompose␈αour␈α
task␈αin␈α␈to␈α
the␈α
follo␈α␈w-
␈β
β␈↓ ↓H␈ε"ing␈α\program":
␈β
I␈↓ αP␈ε∃PROGRAM␈↓ βX␈ε∃LOGTABLE;
␈β
q␈↓ αP␈ε∃(declarations)
␈β∞_␈↓ αP␈ε∃BEGIN
␈β∞@␈↓ αP␈ε∃Print␈↓ β6␈ε∃the␈↓ βz␈ε∃title;
␈β∞h␈↓ αP␈ε∃Print␈↓ β6␈ε∃the␈↓ βz␈ε∃heading;
␈β∂∂␈↓ αP␈ε∃Print␈↓ β6␈ε∃the␈↓ βz␈ε∃body␈↓ ∧O␈ε∃of␈↓ ¬α␈ε∃the␈↓ ¬F␈ε∃table
␈β∂7␈↓ αP␈ε∃END.
␈β⊃_

␈β↓H␈↓ ↓$␈∧↓H↓$α
u
␈β↓J␈↓ ↓$␈∧↓J↓$Hα␈↓ α→␈∧↓Jα→Hα␈↓ ↔␈∧↓J↔Hα
␈β↓V␈↓ ¬L␈ε>Prob␈α␈lem␈α∞Decomp␈α␈osi␈α␈tio␈α␈n
␈β↓\␈↓ ↓M␈ε"28
␈βα⊃␈↓ ↓$␈∧α⊃↓$α
u
␈βαO␈↓ α␈ε"These␈α∂are␈α∞n␈α↓ot␈α∂Pascal␈α∂commands,␈α∂n␈α↓or␈α∂do␈α∂they␈α∞completely␈α∂de|ne␈α∂the␈α∞particular
␈βαz␈↓ ↓H␈ε"table␈αw␈α␈e␈αw␈α␈an␈α␈t,␈αso␈αthat␈αthe␈αprogram␈αis␈αn␈α↓ot␈αy␈α␈et␈αexecutable␈αby␈αa␈αcomputer.␈α∂Ho␈α␈w␈α␈ev␈α␈er,␈αif
␈ββ%␈↓ ↓H␈ε"w␈α␈e␈α
can␈α
|nd␈α
commands␈α
to␈α
do␈α
the␈α
three␈α
parts␈α
of␈α
the␈α
task,␈α
w␈α␈e␈α
can␈α
put␈α
them␈α
together
␈ββP␈↓ ↓H␈ε"in␈αsuch␈αa␈αblock␈αto␈αdo␈αthe␈αen␈α␈tire␈αtask.␈α⊂W␈α⎇e␈αcan␈αexpress
␈β∧.␈↓ αX␈ε5Pr␈α␈int␈α∪the␈α∪ti␈α␈tle
␈β¬π␈↓ ↓H␈ε"in␈αPascal␈αas
␈β¬F␈↓ αP␈ε∃FOR␈↓ β∀␈ε∃I␈↓ β6␈ε∃:=␈↓ βi␈ε∃1␈↓ ∧␈ε∃TO␈↓ ∧>␈ε∃40␈↓ ∧q␈ε∃DO␈↓ ¬$␈ε∃WRITE('␈↓ ε,␈ε∃');
␈β¬n␈↓ αP␈ε∃WRITE('TABLE␈↓ ∧-␈ε∃OF␈↓ ∧`␈ε∃LOGARITHMS');
␈βε⊗␈↓ αP␈ε∃WRITELN;
␈βε=␈↓ αP␈ε∃WRITELN;
␈βε⎇␈↓ α␈ε"The␈α
heading␈α
consists␈α
of␈αt␈α␈w␈α␈o␈α
qualitativ␈α␈ely␈α
distinct␈α
parts:␈αa␈α
blank␈α
region␈α
abo␈α␈v␈α␈e␈α
the
␈βπ(␈↓ ↓H␈ε"10,␈αand␈αthen␈αa␈αseries␈αof␈αn␈α␈um␈α␈bers,␈αso␈αw␈α␈e␈αdecompose
␈βλε␈↓ αX␈ε5Pr␈α␈int␈α∪the␈α∪he␈α␈ading.
␈βλ←␈↓ ↓H␈ε"in␈α␈to
␈β	≡␈↓ αP␈ε∃WRITE('␈↓ ∧O␈ε∃');
␈β	F␈↓ αP␈ε∃FOR␈↓ β∀␈ε∃I:=0␈↓ βi␈ε∃TO␈↓ ∧≤␈ε∃4␈↓ ∧>␈ε∃DO␈↓ ∧q␈ε∃WRITE(I,'␈↓ εN␈ε∃');
␈β	n␈↓ αP␈ε∃WRITELN;
␈β
∃␈↓ αP␈ε∃WRITELN;
␈β
U␈↓ α␈ε"Lo␈α↓oking␈α∪at␈α∪the␈α∩body␈α∪of␈α∪the␈α∪table,␈α∀w␈α␈e␈α∪see␈α∪that␈α∩it␈α∪consists␈α∪of␈α∪eigh␈α␈teen␈α∩lines,
␈β↓␈↓ ↓H␈ε"which␈α∂m␈α␈ust␈α∂be␈α⊂prin␈α␈ted␈α∂in␈α∂sequence,␈α⊂and␈α⊂wh␈α↓ose␈α∂di{erences␈α∂from␈α⊂each␈α∂other␈α∂can␈α∂be
␈β,␈↓ ↓H␈ε"characterized␈α	by␈α	their␈α
n␈α␈umerical␈α	dependence␈α	on␈α
a␈α	v␈α}ariable.␈α∂This␈α	is␈α
a␈α	natural␈α	situation
␈βW␈↓ ↓H␈ε"for␈αdecomposition,␈αin␈α␈to␈αan␈αiteration␈αof␈αone␈αcommand␈αwhich␈αcan␈αprin␈α␈t␈αan␈α␈y␈αline␈αof␈αthe
␈βα␈↓ ↓H␈ε"table␈αbody.␈α⊂Th␈α␈us
␈β`␈↓ αX␈ε5Pr␈α␈int␈α∪the␈α∪bo␈α␈dy␈α∪of␈α∪the␈α∩table
␈β
9␈↓ ↓H␈ε"reduces␈αto
␈β
v␈↓ πV␈ε#.␈αε.␈αε.
␈β
x␈↓ αP␈ε∃Iterate␈↓ βX␈ε∃the␈↓ ∧≤␈ε∃following,␈↓ ¬W␈ε∃with␈↓ ε=␈ε∃a␈↓ ε←␈ε∃=␈↓ π↓␈ε∃2,3,4␈↓ λβ␈ε∃,19;
␈β∞ ␈↓ αP␈ε∃Write␈↓ β6␈ε∃a␈↓ βX␈ε∃line␈↓ ∧-␈ε∃of␈↓ ∧`␈ε∃the␈↓ ¬$␈ε∃form
␈β∞E␈↓ ε≠␈ε#.␈αε.␈αε.
␈β∞G␈↓ ββ␈ε∃5*a,log(5*a),log(5*a+1),␈↓ εG␈ε∃,log(5*a+4)
␈β∂λ␈↓ α␈ε"No␈α␈w␈α
the␈α∞program␈α
has␈α∞become␈α
m␈α␈uch␈α
less␈α∞abstract;␈α∞it␈α
has␈α∞been␈α
decomposed␈α
in␈α␈to
␈β∂3␈↓ ↓H␈ε"the␈αfollo␈α␈wing␈αstructure:
␈β⊃∨

␈β↓H␈↓ ↓$␈∧↓H↓$α
u
␈β↓J␈↓ ↓$␈∧↓J↓$Hα␈↓ "␈∧↓J"Hα␈↓ ↔␈∧↓J↔Hα
␈β↓V␈↓ ∧O␈ε>Pro␈α␈blem␈α∞Decom␈α␈pos␈α␈iti␈α␈on
␈β↓\␈↓ K␈ε"29
␈βα⊃␈↓ ↓$␈∧α⊃↓$α
u
␈βαN␈↓ αP␈ε∃PROGRAM␈↓ βX␈ε∃LOGTABLE;
␈βαu␈↓ αP␈ε∃(declarations)
␈ββ≥␈↓ αP␈ε∃BEGIN
␈ββD␈↓ αP␈ε∃FOR␈↓ β∀␈ε∃I␈↓ β6␈ε∃:=␈↓ βi␈ε∃1␈↓ ∧␈ε∃TO␈↓ ∧>␈ε∃40␈↓ ∧q␈ε∃DO␈↓ ¬$␈ε∃WRITE('␈↓ ε,␈ε∃');
␈ββl␈↓ αP␈ε∃WRITE('TABLE␈↓ ∧-␈ε∃OF␈↓ ∧`␈ε∃LOGARITHMS');
␈β∧∀␈↓ αP␈ε∃WRITELN;
␈β∧;␈↓ αP␈ε∃WRITELN;
␈β¬
␈↓ αP␈ε∃WRITE('␈↓ ∧O␈ε∃');
␈β¬2␈↓ αP␈ε∃FOR␈↓ β∀␈ε∃I:=0␈↓ βi␈ε∃TO␈↓ ∧≤␈ε∃4␈↓ ∧>␈ε∃DO␈↓ ∧q␈ε∃WRITE(I,'␈↓ εN␈ε∃');
␈β¬Z␈↓ αP␈ε∃WRITELN;
␈βε↓␈↓ αP␈ε∃WRITELN;
␈βεN␈↓ π4␈ε#.␈αε.␈αε.
␈βεP␈↓ αP␈ε∃Iterate␈↓ βX␈ε∃the␈↓ ∧≤␈ε∃following,␈↓ ¬W␈ε∃with␈↓ ε,␈ε∃A␈↓ εN␈ε∃=␈↓ εp␈ε∃2,3,␈↓ π`␈ε∃,1␈α↓9:
␈βεx␈↓ β∀␈ε∃Write␈↓ βz␈ε∃a␈↓ ∧≤␈ε∃line␈↓ ∧q␈ε∃of␈↓ ¬$␈ε∃the␈↓ ¬h␈ε∃form
␈βπ≡␈↓ εp␈ε#.␈αε.␈αε.
␈βπ ␈↓ βX␈ε∃5*a,log(5*a),log(5*a+1),␈↓ π≤␈ε∃,log(5␈α↓*a+4)
␈βπG␈↓ αP␈ε∃END.
␈βλ∧␈↓ α␈ε"W␈α⎇e␈αma␈α␈y␈αdecompose
␈βλB␈↓ αP␈ε∃Write␈↓ β6␈ε∃a␈↓ βX␈ε∃line␈↓ ∧-␈ε∃of␈↓ ∧`␈ε∃the␈↓ ¬$␈ε∃form
␈βλg␈↓ ε≠␈ε#.␈αε.␈αε.
␈βλi␈↓ ββ␈ε∃5*a,log(5*a),log(5*a+1),␈↓ εG␈ε∃,log(5*a+4)
␈β	&␈↓ ↓H␈ε"in␈α␈to
␈β	d␈↓ αP␈ε∃WRITE(5*A);
␈β
	␈↓ ε
␈ε#.␈αε.␈αε.
␈β
␈↓ αP␈ε∃Write␈↓ β6␈ε∃log(5*A)␈↓ ∧O␈ε∃log(5*A+1)␈↓ εB␈ε∃log(5*A+4);
␈β
3␈↓ αP␈ε∃WRITELN;
␈β
p␈↓ ↓H␈ε"and␈αfurther␈αdecompose␈αthe␈αsecond␈αline␈αabo␈α␈v␈α␈e␈αin␈α␈to
␈β-␈↓ αP␈ε∃FOR␈↓ β∀␈ε∃C:=0␈↓ βi␈ε∃TO␈↓ ∧≤␈ε∃4␈↓ ∧>␈ε∃DO
␈βU␈↓ β∀␈ε∃WRITE(LN(5*A+C));
␈β∩␈↓ ↓H␈ε"or␈αin␈α␈to
␈βO␈↓ αP␈ε∃FOR␈↓ β∀␈ε∃C:=5*A␈↓ ∧␈ε∃TO␈↓ ∧>␈ε∃5*A+4␈↓ ¬$␈ε∃DO
␈βw␈↓ β∀␈ε∃WRITE(LN(C));
␈β⊃_

␈β↓H␈↓ ↓$␈∧↓H↓$α
u
␈β↓J␈↓ ↓$␈∧↓J↓$Hα␈↓ α→␈∧↓Jα→Hα␈↓ ↔␈∧↓J↔Hα
␈β↓V␈↓ ¬J␈ε>Pro␈α␈blem␈α∞Decom␈α␈pos␈α␈iti␈α␈on
␈β↓\␈↓ ↓M␈ε"30
␈βα⊃␈↓ ↓$␈∧α⊃↓$α
u
␈βαa␈↓ α␈ε"Com␈α␈bining␈αthese␈αpieces,␈αw␈α␈e␈αget␈αthis␈αcomplete␈αprogram:
␈ββ∨␈↓ αP␈ε∃PROGRAM␈↓ βX␈ε∃LOGTABLE;
␈ββF␈↓ β∀␈ε∃VAR␈↓ βX␈ε∃I,A,C␈↓ ∧>␈ε∃:␈↓ ∧`␈ε∃INTEGER;
␈ββn␈↓ αP␈ε∃BEGIN
␈β∧∃␈↓ αP␈ε∃FOR␈↓ β∀␈ε∃I␈↓ β6␈ε∃:=␈↓ βi␈ε∃1␈↓ ∧␈ε∃TO␈↓ ∧>␈ε∃40␈↓ ∧q␈ε∃DO␈↓ ¬$␈ε∃WRITE('␈↓ ε,␈ε∃');
␈β∧=␈↓ αP␈ε∃WRITE('TABLE␈↓ ∧-␈ε∃OF␈↓ ∧`␈ε∃LOGARITHMS');
␈β∧e␈↓ αP␈ε∃WRITELN;
␈β¬␈↓ αP␈ε∃WRITELN;
␈β¬[␈↓ αP␈ε∃WRITE('␈↓ ∧O␈ε∃');
␈βεβ␈↓ αP␈ε∃FOR␈↓ β∀␈ε∃I:=0␈↓ βi␈ε∃TO␈↓ ∧≤␈ε∃4␈↓ ∧>␈ε∃DO␈↓ ∧q␈ε∃WRITE(I,'␈↓ εN␈ε∃');
␈βε+␈↓ αP␈ε∃WRITELN;
␈βεR␈↓ αP␈ε∃WRITELN;
␈βπ!␈↓ αP␈ε∃FOR␈↓ β∀␈ε∃A:=2␈↓ βi␈ε∃TO␈↓ ∧≤␈ε∃19␈↓ ∧O␈ε∃DO
␈βπI␈↓ ββ␈ε∃BEGIN
␈βπq␈↓ ββ␈ε∃WRITE(5*A);
␈βλ_␈↓ ββ␈ε∃FOR␈↓ βG␈ε∃C:=5*A␈↓ ∧>␈ε∃TO␈↓ ∧q␈ε∃5*A+4␈↓ ¬W␈ε∃DO
␈βλ@␈↓ βG␈ε∃WRITE(LN(C));
␈βλg␈↓ ββ␈ε∃WRITELN
␈β	∂␈↓ ββ␈ε∃END
␈β	7␈↓ αP␈ε∃END.
␈β⊃_

␈β↓H␈↓ ↓$␈∧↓H↓$α
u
␈β↓J␈↓ ↓$␈∧↓J↓$Hα␈↓ "␈∧↓J"Hα␈↓ ↔␈∧↓J↔Hα
␈β↓V␈↓ ∧O␈ε>Pro␈α␈blem␈α∞Decom␈α␈pos␈α␈iti␈α␈on
␈β↓\␈↓ K␈ε"31
␈βα⊃␈↓ ↓$␈∧α⊃↓$α
u
␈βαa␈↓ α␈ε"This␈αprogram␈αprin␈α␈ts␈αthe␈αfollo␈α␈wing␈αtable␈α(m␈α↓odi|ed␈αsligh␈α␈tly␈αto␈α|t␈αon␈αthe␈αpage.)
␈ββ ␈↓ ↓H␈∧β ↓Hα
-
␈ββ"␈↓ ↓H␈∧β"↓Hλα␈↓ s␈∧β"sλα
␈ββ)␈↓ ↓H␈∧β)↓Hα
-
␈ββ8␈↓ ¬W␈ε∃TABLE␈↓ ε=␈ε∃OF␈↓ εp␈ε∃LOGARITHMS
␈ββ←␈↓ β%␈ε∃0␈↓ ¬$␈ε∃1␈↓ π#␈ε∃2␈↓ 	"␈ε∃3␈↓ !␈ε∃4
␈β∧/␈↓ ↓H␈ε∃10␈↓ αa␈ε∃2.302585␈↓ ∧`␈ε∃2.397895␈↓ ε←␈ε∃2.484907␈↓ λ↑␈ε∃2.564949␈↓ 
]␈ε∃2.639057
␈β∧V␈↓ ↓H␈ε∃15␈↓ αa␈ε∃2.708050␈↓ ∧`␈ε∃2.772589␈↓ ε←␈ε∃2.833213␈↓ λ↑␈ε∃2.890372␈↓ 
]␈ε∃2.944439
␈β∧}␈↓ ↓H␈ε∃20␈↓ αa␈ε∃2.995732␈↓ ∧`␈ε∃3.044522␈↓ ε←␈ε∃3.091042␈↓ λ↑␈ε∃3.135494␈↓ 
]␈ε∃3.178054
␈β¬%␈↓ ↓H␈ε∃25␈↓ αa␈ε∃3.218876␈↓ ∧`␈ε∃3.258097␈↓ ε←␈ε∃3.295837␈↓ λ↑␈ε∃3.332205␈↓ 
]␈ε∃3.367296
␈β¬M␈↓ ↓H␈ε∃30␈↓ αa␈ε∃3.401197␈↓ ∧`␈ε∃3.433987␈↓ ε←␈ε∃3.465736␈↓ λ↑␈ε∃3.496508␈↓ 
]␈ε∃3.526361
␈β¬u␈↓ ↓H␈ε∃35␈↓ αa␈ε∃3.555348␈↓ ∧`␈ε∃3.583519␈↓ ε←␈ε∃3.610918␈↓ λ↑␈ε∃3.637586␈↓ 
]␈ε∃3.663562
␈βε≤␈↓ ↓H␈ε∃40␈↓ αa␈ε∃3.688879␈↓ ∧`␈ε∃3.713572␈↓ ε←␈ε∃3.737670␈↓ λ↑␈ε∃3.761200␈↓ 
]␈ε∃3.784190
␈βεD␈↓ ↓H␈ε∃45␈↓ αa␈ε∃3.806663␈↓ ∧`␈ε∃3.828641␈↓ ε←␈ε∃3.850148␈↓ λ↑␈ε∃3.871201␈↓ 
]␈ε∃3.891820
␈βεk␈↓ ↓H␈ε∃50␈↓ αa␈ε∃3.912023␈↓ ∧`␈ε∃3.931826␈↓ ε←␈ε∃3.951244␈↓ λ↑␈ε∃3.970292␈↓ 
]␈ε∃3.988984
␈βπ∪␈↓ ↓H␈ε∃55␈↓ αa␈ε∃4.007333␈↓ ∧`␈ε∃4.025352␈↓ ε←␈ε∃4.043051␈↓ λ↑␈ε∃4.060443␈↓ 
]␈ε∃4.077537
␈βπ;␈↓ ↓H␈ε∃60␈↓ αa␈ε∃4.094345␈↓ ∧`␈ε∃4.110874␈↓ ε←␈ε∃4.127134␈↓ λ↑␈ε∃4.143135␈↓ 
]␈ε∃4.158883
␈βπb␈↓ ↓H␈ε∃65␈↓ αa␈ε∃4.174387␈↓ ∧`␈ε∃4.189655␈↓ ε←␈ε∃4.204693␈↓ λ↑␈ε∃4.219508␈↓ 
]␈ε∃4.234107
␈βλ
␈↓ ↓H␈ε∃70␈↓ αa␈ε∃4.248495␈↓ ∧`␈ε∃4.262680␈↓ ε←␈ε∃4.276666␈↓ λ↑␈ε∃4.290460␈↓ 
]␈ε∃4.304065
␈βλ1␈↓ ↓H␈ε∃75␈↓ αa␈ε∃4.317488␈↓ ∧`␈ε∃4.330733␈↓ ε←␈ε∃4.343805␈↓ λ↑␈ε∃4.356709␈↓ 
]␈ε∃4.369448
␈βλY␈↓ ↓H␈ε∃80␈↓ αa␈ε∃4.382027␈↓ ∧`␈ε∃4.394449␈↓ ε←␈ε∃4.406719␈↓ λ↑␈ε∃4.418841␈↓ 
]␈ε∃4.430817
␈β	↓␈↓ ↓H␈ε∃85␈↓ αa␈ε∃4.442651␈↓ ∧`␈ε∃4.454347␈↓ ε←␈ε∃4.465908␈↓ λ↑␈ε∃4.477337␈↓ 
]␈ε∃4.488636
␈β	(␈↓ ↓H␈ε∃90␈↓ αa␈ε∃4.499810␈↓ ∧`␈ε∃4.510860␈↓ ε←␈ε∃4.521789␈↓ λ↑␈ε∃4.532599␈↓ 
]␈ε∃4.543295
␈β	P␈↓ ↓H␈ε∃95␈↓ αa␈ε∃4.553877␈↓ ∧`␈ε∃4.564348␈↓ ε←␈ε∃4.574711␈↓ λ↑␈ε∃4.584968␈↓ 
]␈ε∃4.595120
␈β
2␈↓ ↓H␈∧
2↓Hα
-
␈β
4␈↓ ↓H␈∧
4↓Hλα␈↓ s␈∧
4sλα
␈β
;␈↓ ↓H␈∧
;↓Hα
-
␈β
J␈↓ α␈ε"The␈αgeneral␈αprinciples␈αof␈αdecomposition␈↓ ε}␈ε"w␈α␈e␈αha␈α␈v␈α␈e␈αused,␈αso␈αfar,␈αare␈αthese:
␈β
u␈↓ ↓Z␈ε6∂␈↓ ↓}␈ε"If␈αa␈αtask␈αcan␈αbe␈αcarried␈αout␈αby␈αa␈αsingle␈αPascal␈αcommand,␈αuse␈αthat␈αcommand.
␈β ␈↓ ↓Z␈ε6∂␈↓ ↓}␈ε"If␈α
a␈α	task␈α
can␈α
be␈α
carried␈α
out␈α
by␈α
a␈α
sh␈α↓ort␈α	sequence␈α
of␈α
dissimilar␈α
processes,␈α
decompose
␈βK␈↓ α4␈ε"it␈α
in␈α␈to␈α
a␈α
sequence␈α
of␈α∞commands␈α
to␈α
perform␈α
th␈α↓ose␈α
processes.␈α∀If␈α
that␈α
sequence
␈βw␈↓ α4␈ε"m␈α␈ust␈α∩be␈α∩iterated,␈α∀or␈α∪otherwise␈α∩referred␈α∪to␈α∩as␈α∩a␈α∪wh␈α↓ole,␈α∀mak␈α␈e␈α∩a␈α∩compound
␈β"␈↓ α4␈ε"statemen␈α␈t.
␈βM␈↓ ↓Z␈ε6∂␈↓ ↓}␈ε"If␈αa␈α
task␈α
can␈α
be␈α
carried␈αout␈α
by␈α
a␈α
sequence␈αof␈α
similar␈α
processes,␈α
where␈α
the␈αlength
␈βx␈↓ α4␈ε"of␈α⊂the␈α⊃sequence␈α⊃can␈α⊃be␈α⊂predetermined,␈α∩decompose␈α⊃it␈α⊃in␈α␈to␈α⊂an␈α⊃iteration␈α⊃of␈α⊂a
␈β
#␈↓ α4␈ε"command␈α∩which␈α∪represen␈α␈ts␈α∪the␈α∪t␈α␈ypical␈α∪process␈α∪of␈α∩the␈α∪sequence,␈α∃using␈α∩the
␈β
O␈↓ α4␈ε"iteration␈α⊂v␈α}ariable␈α⊃or␈α⊂expressions␈α⊃con␈α␈taining␈α⊂it␈α⊃to␈α⊂represen␈α␈t␈α⊂th␈α↓ose␈α⊃aspects␈α⊂of
␈β
z␈↓ α4␈ε"the␈αprocesses␈αwhich␈αdi{er.
␈β∞%␈↓ α␈ε"F␈α⎇or␈αexample,␈αto␈αprin␈α␈t␈αthe␈αn␈α␈um␈α␈bers
␈β∞l␈↓ ∧\␈ε"0,␈αε.01,␈αε.03,␈αε.06,␈αε.10,␈αε.15,␈↓ π4␈ε".␈αε.␈αε.␈↓ πd␈ε",␈αε.78,␈αε.91
␈β∂-␈↓ ε)␈ε+th
␈β∂3␈↓ ↓H␈ε"w␈α␈e␈α|rst␈α|nd␈αa␈αgeneral␈αform␈α␈ula␈αfor␈αthe␈↓ ε≤␈ε(i␈↓ εR␈ε"n␈α␈um␈α␈ber.␈α⊂The␈αprinciple␈αwhich␈αgenerates␈αthe
␈β⊃∨

␈β↓H␈↓ ↓$␈∧↓H↓$α
u
␈β↓J␈↓ ↓$␈∧↓J↓$Hα␈↓ α→␈∧↓Jα→Hα␈↓ ↔␈∧↓J↔Hα
␈β↓V␈↓ ¬J␈ε>Pro␈α␈blem␈α∞Decom␈α␈pos␈α␈iti␈α␈on
␈β↓\␈↓ ↓M␈ε"32
␈βα⊃␈↓ ↓$␈∧α⊃↓$α
u
␈βαO␈↓ ↓H␈ε"abo␈α␈v␈α␈e␈αsequence␈αis␈αthat␈αthe␈αn␈α␈um␈α␈bers␈αdi{er␈αby␈αsuccessiv␈α␈e␈αsteps␈αof
␈ββ%␈↓ ¬3␈ε".01.02,␈αε.03,␈αε.04,␈↓ π≠␈ε".␈αε.␈αε.␈↓ πK␈ε",␈αε.13
␈ββu␈↓ 	G␈ε+t␈α↓h
␈ββ|␈↓ ↓H␈ε"There␈α∞are␈ε(␈α∂i␈ε6␈α␈␈ε"␈α	1␈α∂graduated␈α∂steps␈α∂from␈α∂the␈α∂|rst␈α∞n␈α␈um␈α␈ber␈α∂to␈α∂the␈↓ 	;␈ε(i␈↓ 	f␈ε";␈α⊂the␈α∂|rst␈α∂step␈α∞is
␈β∧!␈↓ 
'␈ε+t␈α↓h
␈β∧'␈↓ ↓H␈ε".01,␈α⊃the␈α⊂last␈α⊂is␈α⊃.01(␈ε(i␈ε6␈α␈␈ε"␈α1),␈α⊃so␈α⊂the␈α⊂a␈α␈v␈α␈erage␈α⊃step␈α⊂is␈α⊂.005␈ε6␈αα␈ε(␈αi␈ε",␈α⊃and␈α⊃the␈↓ 
≠␈ε(i␈↓ 
V␈ε"n␈α␈um␈α␈ber␈α⊂is
␈β∧R␈↓ ↓H␈ε".005␈ε6␈αλα␈ε(␈αλi␈ε6␈αλα␈ε"␈αλ(␈ε(i␈ε6␈α	␈␈ε"␈αλ1).␈α⊂W␈α⎇e␈αcan␈αn␈α↓o␈α␈w␈αprogram␈αthe␈αprin␈α␈ting␈αas
␈β¬⊂␈↓ αP␈ε∃FOR␈↓ β∀␈ε∃I:=1␈↓ βi␈ε∃TO␈↓ ∧≤␈ε∃14␈↓ ∧O␈ε∃DO
␈β¬7␈↓ ββ␈ε∃WRITE(.005*I*(I-1))
␈β¬t␈↓ α␈ε"(The␈α⊃later␈α⊃section␈α⊃on␈α∩program␈α⊃v␈α}ariables␈α⊃and␈α⊃assignmen␈α␈t␈α⊃pro␈α␈vides␈α⊃meth␈α↓ods␈α⊃of
␈βε∨␈↓ ↓H␈ε"design,␈αfor␈αiterativ␈α␈e␈αprograms,␈αwhich␈αw␈α␈ould␈αallo␈α␈w␈αprogramming␈αof␈αthis␈αproblem␈αev␈α␈en
␈βεD␈↓ λ,␈ε+th
␈βεJ␈↓ ↓H␈ε"if␈α
w␈α␈e␈α∞w␈α␈ere␈α
unable␈α∞to␈α
|nd␈α∞the␈α
general␈α∞form␈α␈ula␈α
for␈α∞the␈↓ λ∨␈ε(i␈↓ λX␈ε"n␈α␈um␈α␈ber,␈α
using␈α∞instead␈α
the
␈βεv␈↓ ↓H␈ε"principle␈αwhich␈αgenerates␈αthe␈αsequence.)
␈βπ!␈↓ α␈ε"The␈αdecomposition␈α
meth␈α↓od␈αof␈αprogram␈α
design␈αis␈αa␈α
po␈α␈w␈α␈erful␈αin␈α␈tellectual␈αto␈α↓ol,␈α
but
␈βπL␈↓ ↓H␈ε"it␈α∂is␈α⊂n␈α↓ot␈α∂an␈α⊂automatic␈α⊂problem␈α∂solv␈α␈er.␈α≠It␈α⊂will␈α∂n␈α↓ot␈α⊂salv␈α}age␈α∂a␈α⊂fundamen␈α␈tally␈α∂wrong
␈βπw␈↓ ↓H␈ε"approach␈α
to␈αa␈α
problem,␈αn␈α↓or␈αwill␈α
it␈αof␈α
itself␈αcreate␈αinsigh␈α␈t␈α
in␈α␈to␈αthe␈α
possible␈αmeth␈α↓ods␈α
of
␈βλ"␈↓ ↓H␈ε"attacking␈α	a␈α	problem.␈α∂Experienced␈α
programmers␈α	dra␈α␈w␈α	on␈α	a␈α
large␈α	n␈α␈um␈α␈ber␈α	of␈α	frequen␈α␈tly
␈βλN␈↓ ↓H␈ε"useful␈α
meth␈α↓ods;␈α∂reading␈α
man␈α␈y␈α∞programs␈α
is␈α∞the␈α∞only␈α
w␈α␈a␈α␈y␈α∞to␈α
acquire␈α∞this␈α
experience.
␈βλy␈↓ ↓H␈ε"Instructors␈αo$en␈αpro␈α␈vide␈αa␈α|le␈αof␈αexample␈αprograms␈αfor␈αreading␈αand␈αexperimen␈α␈t.
␈β
K␈↓ ↓H␈ε2Exercise
␈β
t␈↓ α␈ε$W␈α⎇ri␈α␈te␈α
a␈αprogram␈αto␈α
prin␈α␈t␈α
a␈αl␈α␈arg␈α↓e␈α␈r␈α
ve␈α␈rsion␈α
of␈αthe␈α	diam␈ααond-shaped␈α
pattern␈α
sh␈α↓o␈α␈wn␈α
belo␈α␈w:
␈β'␈↓ ↓H␈∧'↓Hα
-
␈β)␈↓ ↓H␈∧)↓Hλα␈↓ s␈∧)sλα
␈β0␈↓ ↓H␈∧0↓Hα
-
␈β?␈↓ ∧≤␈ε∃*
␈βf␈↓ ∧␈ε∃***
␈β∞␈↓ βz␈ε∃*****
␈β6␈↓ βi␈ε∃*******
␈β]␈↓ βX␈ε∃*********
␈β
¬␈↓ βi␈ε∃*******
␈β
,␈↓ βz␈ε∃*****
␈β
T␈↓ ∧␈ε∃***
␈β
|␈↓ ∧≤␈ε∃*
␈β∞7␈↓ ↓H␈∧∞7↓Hα
-
␈β∞8␈↓ ↓H␈∧∞8↓Hλα␈↓ s␈∧∞8sλα
␈β∞?␈↓ ↓H␈∧∞?↓Hα
-
␈β∞N␈↓ α␈ε"Y␈α⎇our␈αdiam␈α↓ond,␈αh␈α↓o␈α␈w␈α␈ev␈α␈er,␈αsh␈α↓ould␈αbe␈α19␈αsym␈α␈bols␈αhigh,␈αand␈α19␈αwide.
␈β∂∂␈↓ ↓H␈ε2Exercise
␈β∂8␈↓ α␈ε$As␈α
a␈α↓bo␈α␈v␈α␈e,␈α
but␈α
wi␈α␈th␈α
t␈α␈wo␈α
diam␈α↓o␈α↓nds␈α
si␈α␈de␈α
by␈α
side␈α␈:
␈β⊃≥

␈β↓H␈↓ ↓$␈∧↓H↓$α
u
␈β↓J␈↓ ↓$␈∧↓J↓$Hα␈↓ "␈∧↓J"Hα␈↓ ↔␈∧↓J↔Hα
␈β↓V␈↓ ∧O␈ε>Pro␈α␈blem␈α∞Decom␈α␈pos␈α␈iti␈α␈on
␈β↓\␈↓ K␈ε"33
␈βα⊃␈↓ ↓$␈∧α⊃↓$α
u
␈βαT␈↓ ↓H␈∧αT↓Hα
-
␈βαU␈↓ ↓H␈∧αU↓Hλα␈↓ s␈∧αUsλα
␈βα\␈↓ ↓H␈∧α\↓Hα
-
␈βαk␈↓ ∧␈ε∃*␈↓ ¬α␈ε∃*
␈ββ∪␈↓ βz␈ε∃***␈↓ ∧q␈ε∃***
␈ββ;␈↓ βi␈ε∃*****␈↓ ∧`␈ε∃*****
␈ββb␈↓ βX␈ε∃**************
␈β∧
␈↓ βi␈ε∃*****␈↓ ∧`␈ε∃*****
␈β∧1␈↓ βz␈ε∃***␈↓ ∧q␈ε∃***
␈β∧Y␈↓ ∧␈ε∃*␈↓ ¬α␈ε∃*
␈β¬∀␈↓ ↓H␈∧¬∀↓Hα
-
␈β¬⊗␈↓ ↓H␈∧¬⊗↓Hλα␈↓ s␈∧¬⊗sλα
␈β¬≥␈↓ ↓H␈∧¬≥↓Hα
-
␈β¬O␈↓ α␈ε2Solutions␈ε",␈αomitting␈αdeclarations,␈αetc.:
␈βε1␈↓ ↓H␈ε∃(1)␈↓ αP␈ε∃FOR␈↓ β∀␈ε∃I:=1␈↓ βi␈ε∃TO␈↓ ∧≤␈ε∃10␈↓ ∧O␈ε∃DO
␈βεX␈↓ ββ␈ε∃BEGIN␈↓ βi␈ε∃(*␈↓ ∧≤␈ε∃LINE␈↓ ∧q␈ε∃OF␈↓ ¬$␈ε∃10-I␈↓ ¬y␈ε∃SPACES,␈↓ π↓␈ε∃2*I-1␈↓ πg␈ε∃STARS.␈↓ λ↑␈ε∃*)
␈βπ␈↓ ββ␈ε∃FOR␈↓ βG␈ε∃J:=1␈↓ ∧≤␈ε∃TO␈↓ ∧O␈ε∃10-I␈↓ ¬$␈ε∃DO
␈βπ'␈↓ β6␈ε∃WRITE('␈↓ ∧>␈ε∃');
␈βπO␈↓ ββ␈ε∃FOR␈↓ βG␈ε∃K:=1␈↓ ∧≤␈ε∃TO␈↓ ∧O␈ε∃2*I-1␈↓ ¬5␈ε∃DO
␈βπw␈↓ β6␈ε∃WRITE('*');
␈βλ≡␈↓ ββ␈ε∃WRITELN
␈βλF␈↓ ββ␈ε∃END;
␈βλm␈↓ αP␈ε∃FOR␈↓ β∀␈ε∃I:=␈↓ βX␈ε∃9␈↓ βz␈ε∃DOWNTO␈↓ ∧q␈ε∃1␈↓ ¬∪␈ε∃DO
␈β	∃␈↓ ββ␈ε∃BEGIN␈↓ βi␈ε∃(*␈↓ ∧≤␈ε∃LINES␈↓ ¬α␈ε∃AS␈↓ ¬5␈ε∃ABOVE,␈↓ ε,␈ε∃IN␈↓ ε←␈ε∃REVERSE␈↓ πg␈ε∃ORDER␈↓ λM␈ε∃*)
␈β	=␈↓ ββ␈ε∃FOR␈↓ βG␈ε∃J:=1␈↓ ∧≤␈ε∃TO␈↓ ∧O␈ε∃10-I␈↓ ¬$␈ε∃DO
␈β	d␈↓ β6␈ε∃WRITE('␈↓ ∧>␈ε∃');
␈β
␈↓ ββ␈ε∃FOR␈↓ βG␈ε∃K:=1␈↓ ∧≤␈ε∃TO␈↓ ∧O␈ε∃2*I-1␈↓ ¬5␈ε∃DO
␈β
3␈↓ β6␈ε∃WRITE('*');
␈β
[␈↓ ββ␈ε∃WRITELN
␈ββ␈↓ ββ␈ε∃END
␈βπ␈↓ ↓H␈ε"or
␈βh␈↓ αP␈ε∃FOR␈↓ β∀␈ε∃I:=-9␈↓ βz␈ε∃TO␈↓ ∧-␈ε∃9␈↓ ∧O␈ε∃DO
␈β
⊂␈↓ ββ␈ε∃BEGIN
␈β
7␈↓ ββ␈ε∃FOR␈↓ βG␈ε∃J:=1␈↓ ∧≤␈ε∃TO␈↓ ∧O␈ε∃ABS(I)␈↓ ¬F␈ε∃DO
␈β
←␈↓ β6␈ε∃WRITE('␈↓ ∧>␈ε∃');
␈β∞π␈↓ ββ␈ε∃FOR␈↓ βG␈ε∃K:=1␈↓ ∧≤␈ε∃TO␈↓ ∧O␈ε∃19-2*ABS(I)␈↓ ε≠␈ε∃DO
␈β∞.␈↓ β6␈ε∃WRITE('*');
␈β∞V␈↓ ββ␈ε∃WRITELN
␈β∞⎇␈↓ ββ␈ε∃END
␈β⊃_

␈β↓H␈↓ ↓$␈∧↓H↓$α
u
␈β↓J␈↓ ↓$␈∧↓J↓$Hα␈↓ α→␈∧↓Jα→Hα␈↓ ↔␈∧↓J↔Hα
␈β↓V␈↓ ¬J␈ε>Pro␈α␈blem␈α∞Decom␈α␈pos␈α␈iti␈α␈on
␈β↓\␈↓ ↓M␈ε"34
␈βα⊃␈↓ ↓$␈∧α⊃↓$α
u
␈βαP␈↓ ↓H␈ε∃(2)␈↓ αP␈ε∃FOR␈↓ β∀␈ε∃I:=-9␈↓ βz␈ε∃TO␈↓ ∧-␈ε∃9␈↓ ∧O␈ε∃DO
␈βαx␈↓ ββ␈ε∃BEGIN
␈ββ∨␈↓ ββ␈ε∃FOR␈↓ βG␈ε∃L:=1␈↓ ∧≤␈ε∃TO␈↓ ∧O␈ε∃2␈↓ ∧q␈ε∃DO
␈ββG␈↓ β6␈ε∃BEGIN
␈ββo␈↓ β6␈ε∃FOR␈↓ βz␈ε∃J:=1␈↓ ∧O␈ε∃TO␈↓ ¬α␈ε∃ABS(I)␈↓ ¬y␈ε∃DO
␈β∧⊗␈↓ βi␈ε∃WRITE('␈↓ ∧q␈ε∃');
␈β∧>␈↓ β6␈ε∃FOR␈↓ βz␈ε∃K:=1␈↓ ∧O␈ε∃TO␈↓ ¬α␈ε∃19-2*ABS(I)␈↓ εN␈ε∃DO
␈β∧e␈↓ βi␈ε∃WRITE('*');
␈β¬
␈↓ β6␈ε∃FOR␈↓ βz␈ε∃J:=1␈↓ ∧O␈ε∃TO␈↓ ¬α␈ε∃ABS(I)␈↓ ¬y␈ε∃DO
␈β¬5␈↓ βi␈ε∃WRITE('␈↓ ∧q␈ε∃')
␈β¬\␈↓ β6␈ε∃END;
␈βε∧␈↓ ββ␈ε∃WRITELN
␈βε+␈↓ ββ␈ε∃END
␈β⊃_

␈β↓H␈↓ ↓$␈∧↓H↓$α
u
␈β↓J␈↓ ↓$␈∧↓J↓$Hα␈↓ "␈∧↓J"Hα␈↓ ↔␈∧↓J↔Hα
␈β↓V␈↓ ∧Q␈ε>Comm␈α␈ents␈α∞in␈α∞Pro␈α␈gr␈α␈a␈α↓m␈α␈s
␈β↓\␈↓ K␈ε"35
␈βα⊃␈↓ ↓$␈∧α⊃↓$α
u
␈βα[␈↓ ↓H␈ε>Com␈α␈ment␈α␈s␈α∂i␈α␈n␈α∞P␈α↓r␈α␈og␈α␈rams.
␈ββ≡␈↓ α␈ε"A␈α
computer␈α
program␈α∞em␈α␈bodies␈α
the␈α
in␈α␈ten␈α␈t␈α
of␈α
its␈α∞auth␈α↓or,␈α
but,␈α∞if␈α
it␈α
is␈α
n␈α↓ot␈α
accom-
␈ββI␈↓ ↓H␈ε"panied␈α∞by␈α∞an␈α∞explanation,␈α∂it␈α∞ma␈α␈y␈α∂be␈α∞unclear␈α∞to␈α∞an␈α␈y␈α␈one␈α∂else.␈α⊗It␈α∂ma␈α␈y␈α∞ev␈α␈en␈α∞be␈α∞unin-
␈ββu␈↓ ↓H␈ε"telligible␈α∂to␈α⊂its␈α∂auth␈α↓or␈α⊂himself␈α⊂a$er␈α∂some␈α⊂lapse␈α⊂of␈α∂time.␈α≠It␈α⊂is␈α∂permitted␈α⊂in␈α∂Pascal
␈β∧ ␈↓ ↓H␈ε"to␈α⊂insert␈α⊂commen␈α␈ts␈α⊃an␈α␈ywhere␈α⊂in␈α⊂a␈α⊃program.␈α≥Commen␈α␈ts␈α⊂are␈α⊂iden␈α␈ti|ed␈α⊃as␈α⊂such␈α⊂by
␈β∧K␈↓ ↓H␈ε"being␈α
enclosed␈αin␈αstarred␈αparen␈α␈theses␈α(*␈αcommen␈α␈t␈α
goes␈αhere␈α*).␈α⊂When␈αdecomposing␈α
a
␈β∧v␈↓ ↓H␈ε"problem,␈α
the␈α
early␈αstages␈α
of␈α
a␈α
decomposition␈αcan␈α
and␈α
sh␈α↓ould␈α
be␈αk␈α␈ept␈α
as␈α
commen␈α␈ts.␈α∂A
␈β¬!␈↓ ↓H␈ε"commen␈α␈t␈α
at␈αthe␈αhead␈αof␈α
a␈αprogram␈αsh␈α↓ould␈αiden␈α␈tify␈α
the␈αprogram␈αby␈α
auth␈α↓or,␈αdate,␈αand
␈β¬M␈↓ ↓H␈ε"function,␈α
and␈αgiv␈α␈e␈α
the␈α
name␈α
of␈αthe␈α
|le␈α
on␈α
which␈αthe␈α
program␈α
is␈αk␈α␈ept.␈α∪F␈α⎇or␈αexample,
␈β¬x␈↓ ↓H␈ε"the␈αlog␈αtable␈αprogram␈αmigh␈α␈t␈αha␈α␈v␈α␈e␈αbeen␈αwritten
␈βε5␈↓ αP␈ε∃PROGRAM␈↓ βX␈ε∃LOGTABLE;
␈βε]␈↓ ↓H␈ε∃(*␈↓ ↓{␈ε∃PRINT␈↓ αa␈ε∃A␈↓ ββ␈ε∃TABLE␈↓ βi␈ε∃OF␈↓ ∧≤␈ε∃LOGARIITHMS␈↓ ¬h␈ε∃FILE␈↓ ε=␈ε∃LOGTBL.PGO␈↓ πx␈ε∃*)
␈βπ¬␈↓ ↓H␈ε∃(*␈↓ ↓{␈ε∃ROBERT␈↓ αr␈ε∃W.␈↓ β%␈ε∃FLOYD,␈↓ ∧≤␈ε∃SEPT.␈↓ ¬α␈ε∃5,␈↓ ¬5␈ε∃1980␈↓ ε
␈ε∃*)
␈βπ,␈↓ β∀␈ε∃VAR␈↓ βX␈ε∃I,A,C␈↓ ∧>␈ε∃:␈↓ ∧`␈ε∃INTEGER;
␈βπT␈↓ αP␈ε∃BEGIN
␈βπ{␈↓ β%␈ε∃(*␈↓ βX␈ε∃PRINT␈↓ ∧>␈ε∃THE␈↓ ¬α␈ε∃TITLE␈↓ ¬h␈ε∃OF␈↓ ε≠␈ε∃THE␈↓ ε←␈ε∃TABLE.␈↓ πV␈ε∃*)
␈βλ#␈↓ αP␈ε∃FOR␈↓ β∀␈ε∃I␈↓ β6␈ε∃:=␈↓ βi␈ε∃1␈↓ ∧␈ε∃TO␈↓ ∧>␈ε∃40␈↓ ∧q␈ε∃DO␈↓ ¬$␈ε∃WRITE('␈↓ ε,␈ε∃');
␈βλK␈↓ αP␈ε∃WRITE('TABLE␈↓ ∧-␈ε∃OF␈↓ ∧`␈ε∃LOGARITHMS');
␈βλr␈↓ αP␈ε∃WRITELN;
␈β	~␈↓ αP␈ε∃WRITELN;
␈β	A␈↓ β%␈ε∃(*␈↓ βX␈ε∃PRINT␈↓ ∧>␈ε∃THE␈↓ ¬α␈ε∃TABLE'S␈↓ ε
␈ε∃HEADING.␈↓ π#␈ε∃*)
␈β	i␈↓ αP␈ε∃WRITE('␈↓ ∧O␈ε∃');
␈β
⊃␈↓ αP␈ε∃FOR␈↓ β∀␈ε∃I:=0␈↓ βi␈ε∃TO␈↓ ∧≤␈ε∃4␈↓ ∧>␈ε∃DO␈↓ ∧q␈ε∃WRITE(I,'␈↓ εN␈ε∃');
␈β
8␈↓ αP␈ε∃WRITELN;
␈β
`␈↓ αP␈ε∃WRITELN;
␈βπ␈↓ β%␈ε∃(*␈↓ βX␈ε∃PRINT␈↓ ∧>␈ε∃THE␈↓ ¬α␈ε∃BODY␈↓ ¬W␈ε∃OF␈↓ ε
␈ε∃THE␈↓ εN␈ε∃TABLE.␈↓ πE␈ε∃*)
␈β/␈↓ αP␈ε∃FOR␈↓ β∀␈ε∃A:=2␈↓ βi␈ε∃TO␈↓ ∧≤␈ε∃19␈↓ ∧O␈ε∃DO
␈βW␈↓ ββ␈ε∃BEGIN
␈β}␈↓ ββ␈ε∃WRITE(5*A);
␈β&␈↓ ββ␈ε∃FOR␈↓ βG␈ε∃C:=5*A␈↓ ∧>␈ε∃TO␈↓ ∧q␈ε∃5*A+4␈↓ ¬W␈ε∃DO
␈βM␈↓ βG␈ε∃WRITE(LN(C));
␈βu␈↓ ββ␈ε∃WRITELN
␈β
≥␈↓ ββ␈ε∃END
␈β
D␈↓ αP␈ε∃END.
␈β⊃_

␈β↓H␈↓ ↓$␈∧↓H↓$α
u
␈β↓J␈↓ ↓$␈∧↓J↓$Hα␈↓ α→␈∧↓Jα→Hα␈↓ ↔␈∧↓J↔Hα
␈β↓V␈↓ ε⊗␈ε>Pro␈α␈f␈α↓essi␈α␈on␈α␈a␈α↓l␈α␈ism
␈β↓\␈↓ ↓M␈ε"36
␈βα⊃␈↓ ↓$␈∧α⊃↓$α
u
␈βα[␈↓ ↓H␈ε>Pro␈α␈f␈α↓ess␈α␈ion␈α␈a␈α↓l␈α␈ism␈α␈.
␈ββ≡␈↓ α␈ε"It␈α∞is␈α∞part␈α∂of␈α∞a␈α∞professional␈α∞attitude␈α∂to␈α␈w␈α␈ard␈α∞computer␈α∞programming␈α∞to␈α∞consider
␈ββI␈↓ ↓H␈ε"the␈α	future␈α
lifespan␈α
of␈α
ev␈α␈ery␈α	program␈α
y␈α␈ou␈α
write.␈α∂While␈α
the␈α
exercises␈α	y␈α␈ou␈α
n␈α↓o␈α␈w␈α
write␈α	are
␈ββu␈↓ ↓H␈ε"ephemeral,␈α∞m␈α↓ost␈α∞computer␈α∞programs␈α∞are␈α∞k␈α␈ept␈α∞for␈α∞a␈α∞long␈α∞time␈α∞and␈α
used␈α∞repeatedly.
␈β∧ ␈↓ ↓H␈ε"The␈αprogrammer␈αsh␈α↓ould␈αassume␈αthat:
␈β∧K␈↓ ↓Z␈ε6∂␈↓ ↓}␈ε"The␈α
program␈α
con␈α␈tains␈α∞as␈α
y␈α␈et␈α
undetected␈α∞errors,␈↓ πq␈ε"which␈α
someone␈α
else␈α∞ma␈α␈y␈α
ha␈α␈v␈α␈e␈α
to
␈β∧v␈↓ α4␈ε"locate␈αand␈αcorrect.
␈β¬!␈↓ ↓Z␈ε6∂␈↓ ↓}␈ε"The␈α	problem␈α
which␈α	the␈α
program␈α
solv␈α␈es␈α	ma␈α␈y␈α
later␈α	be␈α
rede|ned,␈α
requiring␈α	m␈α↓odi|ca-
␈β¬M␈↓ α4␈ε"tions␈αin␈αthe␈αprogram.
␈β¬x␈↓ ↓Z␈ε6∂␈↓ ↓}␈ε"The␈α
computer␈α
on␈α∞which␈α
the␈α∞program␈α
runs,␈α∞or␈α
the␈α∞other␈α
programs␈α∞with␈α
which␈α
it
␈βε#␈↓ α4␈ε"in␈α␈teracts,␈αma␈α␈y␈αbe␈αchanged,␈αrequiring␈αm␈α↓odi|cations␈αin␈αthe␈αprogram.
␈βεN␈↓ ↓Z␈ε6∂␈↓ ↓}␈ε"Some␈αusers␈αof␈αthe␈αprogram␈αwill␈αn␈α↓ot␈αkn␈α↓o␈α␈w␈αexactly␈αh␈α↓o␈α␈w␈αit␈αw␈α␈orks.
␈βεy␈↓ ↓H␈ε"A␈α∪program␈α∩sh␈α↓ould␈α∪be␈α∪designed␈α∪to␈α∪con␈α␈tin␈α␈ue␈α∪to␈α∪be␈α∪useful␈α∪under␈α∪all␈α∪these␈α∩adv␈α␈erse
␈βπ%␈↓ ↓H␈ε"circumstances.␈α≥F␈α⎇or␈α⊃this␈α⊂reason,␈α∩a␈α⊃program␈α⊂sh␈α↓ould␈α⊃con␈α␈tain␈α⊂su}cien␈α␈t␈α⊃commen␈α␈ts␈α⊂to
␈βπP␈↓ ↓H␈ε"allo␈α␈w␈α∂an␈α⊂experienced␈α∂programmer␈α⊂to␈α∂read␈α∂it,␈α⊃in␈α∂wh␈α↓ole␈α⊂or␈α∂in␈α⊂part,␈α⊂and␈α∂understand
␈βπ{␈↓ ↓H␈ε"h␈α↓o␈α␈w␈α
it␈αw␈α␈orks.␈α⊂A␈αcommen␈α␈t␈αat␈α
the␈αbeginning␈αsh␈α↓ould␈αtell␈αwh␈α↓o␈αwrote␈αthe␈α
program,␈αwhat
␈βλ&␈↓ ↓H␈ε"problem␈α∞it␈α∂solv␈α␈es,␈α∂when␈α∂it␈α∞w␈α␈as␈α∂last␈α∂m␈α↓odi|ed,␈α∂and␈α∂what␈α∞|le␈α∂it␈α∞resides␈α∂in.␈α_It␈α∞sh␈α↓ould
␈βλQ␈↓ ↓H␈ε"include␈α∂en␈α↓ough␈α⊂information␈α∂in␈α⊂its␈α⊂output␈α∂|les␈α⊂to␈α∂iden␈α␈tify␈α⊂the␈α∂problem␈α⊂solv␈α␈ed,␈α⊂and
␈βλ⎇␈↓ ↓H␈ε"(usually)␈α∞to␈α∂reproduce␈α∞the␈α∂input␈α∞data.␈α_It␈α∞sh␈α↓ould␈α∞pro␈α␈vide␈α∂through␈α∞the␈α∂terminal␈α∞an␈α␈y
␈β	(␈↓ ↓H␈ε"necessary␈αinstruction␈αto␈αan␈αinexperienced␈αuser.
␈β⊃_

␈β↓H␈↓ ↓$␈∧↓H↓$α
u
␈β↓J␈↓ ↓$␈∧↓J↓$Hα␈↓ "␈∧↓J"Hα␈↓ ↔␈∧↓J↔Hα
␈β↓V␈↓ βs␈ε>Stor␈α␈a␈α↓g␈α␈e␈α∂V␈α⎇ari␈α␈a␈α↓bl␈α␈es␈α∂and␈α∞Assi␈α␈gnm␈α␈ent
␈β↓\␈↓ K␈ε"37
␈βα⊃␈↓ ↓$␈∧α⊃↓$α
u
␈βαU␈↓ ↓H␈ε>St␈α␈orage␈α∞V␈α⎇ariabl␈α␈e␈α↓s␈α∞and␈α∞Assig␈α␈nm␈α␈e␈α↓n␈α␈t.
␈ββ_␈↓ α␈ε"The␈αharm␈α↓onic␈αn␈α␈um␈α␈bers␈αare:
␈ββb␈↓ ¬
␈ε(H␈↓ ¬B␈ε"=␈α
1
␈ββo␈↓ ¬(␈ε%1
␈β∧␈↓ ε:␈ε"1
␈β∧_␈↓ ¬
␈ε(H␈↓ ¬B␈ε"=␈α
1␈αλ+
␈β∧%␈↓ ¬(␈ε%2
␈β∧-␈↓ ε:␈∧∧-ε:α∩
␈β∧2␈↓ ε:␈ε"2
␈β∧T␈↓ ε:␈ε"1␈↓ πλ␈ε"1
␈β∧l␈↓ ¬
␈ε(H␈↓ ¬B␈ε"=␈α
1␈αλ+␈↓ εX␈ε"+
␈β∧x␈↓ ¬(␈ε%3
␈β¬␈↓ ε:␈∧¬ε:α∩␈↓ πλ␈∧¬πλα∩
␈β¬ε␈↓ ε:␈ε"2␈↓ πλ␈ε"3
␈β¬(␈↓ ε:␈ε"1␈↓ πλ␈ε"1␈↓ πV␈ε"1
␈β¬@␈↓ ¬
␈ε(H␈↓ ¬B␈ε"=␈α
1␈αλ+␈↓ εX␈ε"+␈↓ π&␈ε"+␈↓ πl␈ε",␈ε(␈αεe␈α↓tc␈ε".
␈β¬L␈↓ ¬(␈ε%4
␈β¬T␈↓ ε:␈∧¬Tε:α∩␈↓ πλ␈∧¬Tπλα∩␈↓ πV␈∧¬TπVα∩
␈β¬Y␈↓ ε:␈ε"2␈↓ πλ␈ε"3␈↓ πV␈ε"4
␈βε∩␈↓ α␈ε"In␈αmathematical␈αlanguage,
␈βε+␈↓ εl␈ε↓X
␈βε5␈↓ π(␈ε"1
␈βεM␈↓ ¬}␈ε(H␈↓ ε:␈ε"=
␈βεZ␈↓ ε≤␈ε+n
␈βεa␈↓ π(␈∧εaπ(α∩
␈βεg␈↓ π(␈ε(j
␈βε}␈↓ εh␈ε+j␈↓ εu␈ε%=1
␈βπ7␈↓ α␈ε"Ev␈α}aluation␈α∞of␈α∂this␈α∞series␈α∂seems␈α∞to␈α∞be␈α∂a␈α∞natural␈α∂candidate␈α∞for␈α∞iteration,␈α∂decom-
␈βπc␈↓ ↓H␈ε"posing␈αthe␈αproblem
␈βλ=␈↓ αX␈ε5pr␈α␈int␈α∪the␈α∪fi␈α␈rst␈α∪100␈α∪ha␈α␈rmonic␈α∪num␈α␈bers
␈β	∪␈↓ ↓H␈ε"in␈α␈to
␈β	R␈↓ αP␈ε∃FOR␈↓ β∀␈ε∃J:=1␈↓ βi␈ε∃TO␈↓ ∧≤␈ε∃100␈↓ ∧`␈ε∃DO
␈β	y␈↓ β∀␈ε∃print␈↓ βz␈ε∃the␈↓ ∧>␈ε∃J-th␈↓ ¬∪␈ε∃harmonic␈↓ ε,␈ε∃number
␈β
7␈↓ α␈ε"Ho␈α␈w␈α␈ev␈α␈er,␈αhere␈αw␈α␈e␈αare␈αstuck,␈αev␈α␈en␈αif␈αw␈α␈e␈αrealize␈αthat␈↓ λ2␈ε(H␈↓ λi␈ε"=␈↓ 	↔␈ε(H␈↓ 	w␈ε"+␈απ1/␈↓ 
F␈ε(j␈↓ 
W␈ε",␈αand␈αthat
␈β
D␈↓ λO␈ε+j␈↓ 	4␈ε+j␈↓ 	B␈ε9␈␈ε%␈α␈1
␈β
b␈↓ ↓H␈ε"w␈α␈e␈αha␈α␈v␈α␈e␈αjust␈α
prin␈α␈ted␈↓ ∧⊗␈ε(H␈↓ ∧|␈ε"at␈α
the␈αtime␈αw␈α␈e␈α
w␈α␈an␈α␈t␈↓ πG␈ε(H␈↓ πt␈ε",␈αε(␈↓ λ⊂␈ε(j␈↓ λ,␈ε6∃␈ε"␈α
2).␈α∩Let␈αus,␈α
h␈α↓o␈α␈w␈α␈ev␈α␈er,␈αgo␈αas
␈β
o␈↓ ∧4␈ε+j␈↓ ∧A␈ε9␈␈ε%1␈↓ πe␈ε+j
␈β∞␈↓ ↓H␈ε"far␈αas␈αw␈α␈e␈αcan,␈αmaking␈αa␈αspecial␈αcase␈αof␈↓ ε4␈ε(H␈↓ εb␈ε",␈αbecause␈αit␈αcan␈αn␈α↓ot␈αbe␈αcomputed␈αfrom␈αits
␈β~␈↓ εQ␈ε%1
␈β9␈↓ ↓H␈ε"predecessor.
␈βu␈↓ β6␈ε)H
␈βw␈↓ αP␈ε∃Print
␈β↓␈↓ βQ␈ε&1
␈β∨␈↓ αP␈ε∃FOR␈↓ β∀␈ε∃J:=␈↓ βX␈ε∃2␈↓ βz␈ε∃TO␈↓ ∧-␈ε∃100␈↓ ∧q␈ε∃DO
␈βF␈↓ αP␈ε∃Print␈↓ β6␈ε∃(1/J)␈↓ ∧≤␈ε∃+␈↓ ∧>␈ε∃(the␈↓ ¬∪␈ε∃number␈↓ ε
␈ε∃most␈↓ ε←␈ε∃recently␈↓ πx␈ε∃printed)
␈β
∧␈↓ α␈ε"What␈αis␈αneeded␈αhere␈αis␈αa␈αmechanism␈αfor␈αsa␈α␈ving␈αthe␈αresults␈αof␈αprevious␈αcomputa-
␈β
0␈↓ ↓H␈ε"tions.␈α∃F␈α⎇or␈α
this␈α∞purpose,␈α∞Pascal␈α∞pro␈α␈vides␈α∞the␈α
abilit␈α␈y␈α∞to␈α∞use␈α
v␈α}ariables␈α∞which␈α∞h␈α↓old␈α
the
␈β
[␈↓ ↓H␈ε"v␈α}alues␈α	resulting␈α
from␈α
previous␈α	computations.␈α∂They␈α
are␈α
n␈α↓ot␈α	analogous␈α
to␈α
the␈α	v␈α}ariables
␈β∞ε␈↓ ↓H␈ε"of␈α
mathematics,␈αwhich␈αden␈α↓ote␈αa␈α
single,␈αunkn␈α↓o␈α␈wn␈αv␈α}alue,␈αwhich␈αdoes␈α
n␈α↓ot␈α\v␈α}ary"␈αat␈α
all;
␈β∞1␈↓ ↓H␈ε"n␈α↓or␈α∂to␈α∂the␈α∂iteration␈α∂v␈α}ariables,␈α⊂which␈α∂run␈α∂through␈α∂a␈α∂preordained␈α∂set␈α∂of␈α∂v␈α}alues.␈α→W␈α⎇e
␈β∞\␈↓ ↓H␈ε"shall␈α
call␈α∞them␈ε/␈α
storage␈α∞v␈α}ariables␈ε",␈↓ ¬]␈ε"and␈α
a␈α∞program␈α
ma␈α␈y␈α∞change␈α
their␈α∞v␈α}alues␈α
whenev␈α␈er
␈β∂λ␈↓ ↓H␈ε"desired.␈α∃W␈α⎇e␈α∞shall␈α∞use␈α
upper␈α∞case␈α∞letters␈α∞for␈α∞storage␈α
v␈α}ariables␈α∞and␈α∞lo␈α␈w␈α␈er␈α∞case␈α
letters
␈β∂3␈↓ ↓H␈ε"for␈αmathematical␈αv␈α}ariables.
␈β⊃_

␈β↓H␈↓ ↓$␈∧↓H↓$α
u
␈β↓J␈↓ ↓$␈∧↓J↓$Hα␈↓ α→␈∧↓Jα→Hα␈↓ ↔␈∧↓J↔Hα
␈β↓V␈↓ ∧n␈ε>Stor␈α␈a␈α↓g␈α␈e␈α∂V␈α⎇ari␈α␈a␈α↓bl␈α␈es␈α∂and␈α∞Assi␈α␈gnm␈α␈ent
␈β↓\␈↓ ↓M␈ε"38
␈βα⊃␈↓ ↓$␈∧α⊃↓$α
u
␈βαO␈↓ α␈ε"W␈α⎇e␈α⊃m␈α↓odify␈α⊃the␈α⊂abo␈α␈v␈α␈e␈α⊃program␈α⊃by␈α⊃using␈α⊃a␈α⊃v␈α}ariable,␈↓ 	≠␈ε",␈α⊃wh␈α↓ose␈α⊃v␈α}alue␈α⊃will␈α⊂be
␈βαQ␈↓ λc␈ε5S␈α␈UM
␈βαz␈↓ ↓H␈ε"changed␈α∂as␈α⊂needed␈α∂to␈α∂remain␈α⊂equal␈α∂to␈α⊂the␈α∂n␈α␈um␈α␈ber␈α⊂m␈α↓ost␈α∂recen␈α␈tly␈α⊂prin␈α␈ted.␈α~W␈α⎇e␈α∂use
␈ββ%␈↓ ↓H␈ε"commen␈α␈ts␈α
extensiv␈α␈ely␈α
to␈αexplain␈α
the␈αsigni|cance␈α
of␈α
the␈αinformation␈α
k␈α␈ept␈αas␈α
the␈α
v␈α}alue
␈ββP␈↓ ↓H␈ε"of␈αa␈αv␈α}ariable.
␈ββ|␈↓ α␈ε"Pascal␈αrequires␈αthat␈αeach␈αstorage␈αv␈α}ariable␈αused␈αbe␈αexplicitly␈αcreated␈αby␈αa␈αspecial
␈β∧'␈↓ ↓H␈ε"kind␈αof␈αcommand␈αcalled␈αa␈ε/␈αdeclaration␈ε".␈↓ ε4␈ε"The␈αdeclaration
␈β∧`␈↓ αX␈ε5VA␈α␈R␈α∪SUM␈α∪:␈α∪RE␈α␈AL
␈β¬⊗␈↓ ↓H␈ε"creates␈α
a␈α∞v␈α}ariable␈↓ ∧/␈ε"which␈α∞is␈α
permitted␈α
to␈α∞tak␈α␈e␈α
an␈α␈y␈α∞n␈α␈um␈α␈ber␈α
as␈α∞its␈α
v␈α}alue.␈α∀(\Real"
␈β¬_␈↓ βi␈ε5SUM
␈β¬A␈↓ ↓H␈ε"is␈αused␈α
here␈α
in␈α
the␈αsense,␈α
\n␈α↓ot␈α
imaginary".␈α∩What␈α
mathematicians␈α
call␈α
real␈αn␈α␈um␈α␈bers
␈β¬l␈↓ ↓H␈ε"are␈αwhat␈αthe␈αrest␈αof␈αus␈αcall␈αn␈α␈um␈α␈bers.)␈α⊂W␈α⎇e␈αmigh␈α␈t␈αalso␈αha␈α␈v␈α␈e␈αoccasion␈αto␈αdeclare
␈βε%␈↓ αX␈ε5VA␈α␈R␈α∪A␈α∪:INTEG␈α␈ER
␈βε[␈↓ ↓H␈ε"to␈αλcreate␈αλa␈α	v␈α}ariable␈↓ ∧∂␈ε"which␈αλcould␈α	tak␈α␈e␈αλon␈αλonly␈α	wh␈α↓ole-n␈α␈um␈α␈ber␈αλv␈α}alues,␈α	whether␈αλpositiv␈α␈e,
␈βε]␈↓ βt␈ε5A
␈βπε␈↓ ↓H␈ε"negativ␈α␈e,␈α∞or␈α∞zero.␈α⊗(There␈α∞are␈α∞pragmatic␈α∞reasons␈α∞for␈α∞ha␈α␈ving␈α∞sev␈α␈eral␈α∞t␈α␈ypes␈α∞of␈α∞storage
␈βπ1␈↓ ↓H␈ε"v␈α}ariables;␈α∂the␈α∞m␈α↓ore␈α∂restricted␈α∞t␈α␈ypes,␈α∂such␈α∞as␈α∂the␈α∞in␈α␈teger␈α∞v␈α}ariables,␈α∂t␈α␈ypically␈α∞require
␈βπ]␈↓ ↓H␈ε"less␈αof␈αthe␈αcomputer's␈αmem␈α↓ory␈αresources␈αfor␈αtheir␈αrepresen␈α␈tation,␈αand␈αthe␈αoperations
␈βλλ␈↓ ↓H␈ε"of␈αarithmetic␈αcan␈αo$en␈αbe␈αperformed␈αon␈αthem␈αm␈α↓ore␈αrapidly.)
␈βλ3␈↓ α␈ε"In␈α∞a␈α∂program,␈α∞a␈α∂command␈α∞which,␈α∂when␈α∞executed,␈α∂giv␈α␈es␈α∞the␈α∂storage␈α∞v␈α}ariable␈↓ X␈ε6V
␈βλ↑␈↓ ↓H␈ε"the␈αv␈α}alue␈αof␈αthe␈αexpression␈↓ ∧y␈ε6E␈↓ ¬∩␈ε",␈αis␈αwritten
␈β	⊗␈↓ αX␈ε6V␈↓ β~␈ε6E
␈β	_␈↓ αt␈ε5:=
␈β	M␈↓ ↓H␈ε"which␈α
can␈αbe␈α
read␈α\assign␈α
the␈αv␈α}alue␈α
of␈αthe␈α
expression␈↓ λ⊂␈ε6E␈↓ λ3␈ε"to␈αthe␈α
v␈α}ariable␈↓ 
 ␈ε6V␈↓ 
<␈ε","␈αor␈α
simply
␈β	x␈↓ ↓H␈ε"\Set␈↓ α~␈ε6V␈↓ αE␈ε"equal␈α∞to␈↓ βS␈ε6E␈↓ βl␈ε"."␈α↔Such␈α∂a␈α∞command␈α∂is␈α∞called␈α∞an␈ε/␈α∂assignmen␈α␈t␈ε".␈↓ 	R␈ε"(If␈↓ 
∧␈ε6V␈↓ 
/␈ε"is␈α∞an␈α∞in␈α␈teger
␈β
#␈↓ ↓H␈ε"v␈α}ariable,␈↓ αY␈ε6E␈↓ α␈␈ε"m␈α␈ust␈αbe␈αan␈α
in␈α␈teger␈αexpression.␈α∩If␈↓ π∀␈ε6V␈↓ π=␈ε"is␈αa␈α
real␈αv␈α}ariable,␈↓ 	X␈ε6E␈↓ 	⎇␈ε"ma␈α␈y␈α
be␈αeither␈αa
␈β
O␈↓ ↓H␈ε"real␈αor␈αan␈αin␈α␈teger␈αexpression.)
␈β
z␈↓ α␈ε"Our␈αprogram,␈αas␈αm␈α↓odi|ed,␈αn␈α↓o␈α␈w␈αbecomes
␈β4␈↓ α␈ε∃PROGRAM␈↓ β∀␈ε∃HARMONICNUMBERS;
␈ββ␈↓ α?␈ε∃(*␈↓ αr␈ε∃SUM␈↓ β6␈ε∃WILL␈↓ ∧␈ε∃TAKE␈↓ ∧`␈ε∃ON␈↓ ¬∪␈ε∃THE␈↓ ¬W␈ε∃VALUES␈↓ εN␈ε∃OF␈↓ π↓␈ε∃THE␈↓ πE␈ε∃HARMONIC␈↓ λ↑␈ε∃NUMBERS
␈β)␈↓ εN␈ε#.␈αε.␈αε.
␈β+␈↓ ¬y␈ε∃H(1),␈↓ εz␈ε∃,H(100)␈↓ λβ␈ε∃*)
␈βP␈↓ 	"␈ε#.␈αε.␈αε.
␈βR␈↓ α?␈ε∃(*␈↓ αr␈ε∃THE␈↓ β6␈ε∃N-TH␈↓ ∧␈ε∃HARMONIC␈↓ ¬$␈ε∃NUMBER␈↓ ε≠␈ε∃H(N)␈↓ εp␈ε∃=␈↓ π∩␈ε∃1␈↓ π4␈ε∃+␈↓ πV␈ε∃1/2␈↓ λ~␈ε∃+␈↓ λ<␈ε∃1/3␈↓ 	␈ε∃+␈↓ 	Z␈ε∃+␈↓ 	|␈ε∃1/N␈↓ 
@␈ε∃*)
␈βz␈↓ α␈ε∃VAR␈↓ αa␈ε∃SUM␈↓ β%␈ε∃:␈↓ βG␈ε∃REAL;
␈β
"␈↓ αa␈ε∃J␈↓ ββ␈ε∃:␈↓ β%␈ε∃INTEGER;
␈β
I␈↓ α␈ε∃BEGIN
␈β
q␈↓ α␈ε∃Give␈↓ αa␈ε∃SUM␈↓ β%␈ε∃the␈↓ βi␈ε∃value␈↓ ∧O␈ε∃1␈↓ ∧q␈ε∃(=␈↓ ¬$␈ε∃H␈↓ ¬D␈ε∃)␈↓ ¬f␈ε∃and␈↓ ε*␈ε∃print␈↓ π⊂␈ε∃H␈↓ π0␈ε∃;
␈β
z␈↓ ¬5␈ε&1␈↓ π!␈ε&1
␈β∞_␈↓ α␈ε∃FOR␈↓ αP␈ε∃J:=2␈↓ β%␈ε∃TO␈↓ βX␈ε∃100␈↓ ∧≤␈ε∃DO
␈β∞@␈↓ αP␈ε∃(*␈↓ β∀␈ε∃SUM␈↓ βX␈ε∃=␈↓ βz␈ε∃H(J-1)␈↓ ∧q␈ε∃*)
␈β∞h␈↓ αP␈ε∃(Take␈↓ β6␈ε∃(1/J)␈↓ ∧≤␈ε∃+␈↓ ∧>␈ε∃the␈↓ ¬α␈ε∃old␈↓ ¬F␈ε∃value␈↓ ε,␈ε∃of␈↓ ε←␈ε∃SUM␈↓ π#␈ε∃(=␈↓ πV␈ε∃H␈↓ λ"␈ε∃)␈↓ λD␈ε∃as␈↓ λw␈ε∃the
␈β∞q␈↓ πg␈ε,J␈↓ πy␈ε:␈␈ε&1
␈β∂∂␈↓ ββ␈ε∃new␈↓ βG␈ε∃value␈↓ ∧-␈ε∃for␈↓ ∧q␈ε∃SUM␈↓ ¬5␈ε∃(=␈↓ ¬h␈ε∃H␈↓ ε␈ε∃)␈↓ ε.␈ε∃and␈↓ εr␈ε∃print␈↓ πX␈ε∃SUM.)
␈β∂→␈↓ ¬y␈ε,J
␈β∂7␈↓ α␈ε∃END.
␈β⊃_

␈β↓H␈↓ ↓$␈∧↓H↓$α
u
␈β↓J␈↓ ↓$␈∧↓J↓$Hα␈↓ "␈∧↓J"Hα␈↓ ↔␈∧↓J↔Hα
␈β↓V␈↓ βs␈ε>Stor␈α␈a␈α↓g␈α␈e␈α∂V␈α⎇ari␈α␈a␈α↓bl␈α␈es␈α∂and␈α∞Assi␈α␈gnm␈α␈ent
␈β↓\␈↓ K␈ε"39
␈βα⊃␈↓ ↓$␈∧α⊃↓$α
u
␈βαO␈↓ α␈ε"W␈α⎇e␈αdecompose
␈ββ≤␈↓ αX␈ε5gi␈α␈ve␈α∪SUM␈α∪the␈α∩value␈α∪1␈α∪a␈α␈nd␈α∪print␈α∪H␈↓ πE␈ε5;
␈ββ&␈↓ π4␈ε%1
␈ββe␈↓ ↓H␈ε"in␈α␈to
␈β∧!␈↓ αP␈ε∃SUM:=␈↓ β6␈ε∃1;
␈β∧I␈↓ αP␈ε∃WRITELN(SUM);
␈β¬∧␈↓ ↓H␈ε"and␈αw␈α␈e␈αchange
␈β¬@␈↓ αP␈ε∃Take␈↓ β%␈ε∃(1/j)␈↓ ∧␈ε∃+␈↓ ∧-␈ε∃the␈↓ ∧q␈ε∃old␈↓ ¬5␈ε∃value␈↓ ε≠␈ε∃of␈↓ εN␈ε∃SUM␈↓ π∩␈ε∃(=␈↓ πE␈ε∃H␈↓ λ␈ε∃)␈↓ λ.␈ε∃as
␈β¬J␈↓ πV␈ε,j␈↓ πb␈ε:␈␈ε&␈α↓1
␈β¬h␈↓ ββ␈ε∃the␈↓ βG␈ε∃new␈↓ ∧␈ε∃value␈↓ ∧q␈ε∃for␈↓ ¬5␈ε∃SUM␈↓ ¬y␈ε∃(=␈↓ ε,␈ε∃H␈↓ εK␈ε∃)␈↓ εm␈ε∃and␈↓ π1␈ε∃print␈↓ λ↔␈ε∃SUM
␈β¬r␈↓ ε=␈ε,j
␈βε$␈↓ ↓H␈ε"to
␈βε`␈↓ αP␈ε∃BEGIN
␈βππ␈↓ αP␈ε∃SUM␈↓ β∀␈ε∃:=␈↓ βG␈ε∃1/j␈↓ ∧␈ε∃+␈↓ ∧-␈ε∃SUM;
␈βπ/␈↓ αP␈ε∃WRITELN(SUM)
␈βπW␈↓ αP␈ε∃END
␈βλ∩␈↓ ↓H␈ε"Our␈αprogram␈αis␈αn␈α↓o␈α␈w
␈βλO␈↓ αP␈ε∃PROGRAM␈↓ βX␈ε∃HARMONICNUMBERS;
␈βλt␈↓ 
λ␈ε#.␈αε.␈αε.
␈βλv␈↓ αP␈ε∃(*␈↓ ββ␈ε∃SUM␈↓ βG␈ε∃TAKES␈↓ ∧-␈ε∃ON␈↓ ∧`␈ε∃THE␈↓ ¬$␈ε∃VALUES␈↓ ε≠␈ε∃OF␈↓ εN␈ε∃THE␈↓ π∩␈ε∃HARMONIC␈↓ λ+␈ε∃NUMBERS␈↓ 	3␈ε∃H(1),␈↓ 
5␈ε∃,H(100)␈↓ =␈ε∃*)
␈β	≤␈↓ 	3␈ε#.␈αε.␈αε.
␈β	≡␈↓ αP␈ε∃(*␈↓ ββ␈ε∃THE␈↓ βG␈ε∃N-TH␈↓ ∧≤␈ε∃HARMONIC␈↓ ¬5␈ε∃NUMBER␈↓ ε,␈ε∃H(N)␈↓ π↓␈ε∃=␈↓ π#␈ε∃1␈↓ πE␈ε∃+␈↓ πg␈ε∃1/2␈↓ λ+␈ε∃+␈↓ λM␈ε∃1/3␈↓ 	⊃␈ε∃+␈↓ 	k␈ε∃+␈↓ 

␈ε∃1/N␈↓ 
Q␈ε∃*)
␈β	E␈↓ αP␈ε∃VAR␈↓ β∀␈ε∃SUM␈↓ βX␈ε∃:␈↓ βz␈ε∃REAL;
␈β	m␈↓ β6␈ε∃J␈↓ βX␈ε∃:␈↓ βz␈ε∃INTEGER␈↓ ¬α␈ε∃;
␈β
∃␈↓ αP␈ε∃BEGIN
␈β
<␈↓ αP␈ε∃SUM:=␈↓ β6␈ε∃1;
␈β
d␈↓ αP␈ε∃WRITELN(SUM);
␈β␈↓ αP␈ε∃FOR␈↓ β∀␈ε∃J:=␈↓ βX␈ε∃2␈↓ βz␈ε∃TO␈↓ ∧-␈ε∃100␈↓ ∧q␈ε∃DO
␈β3␈↓ ββ␈ε∃(*␈↓ βG␈ε∃SUM␈↓ ∧␈ε∃=␈↓ ∧-␈ε∃H(J-1)␈↓ ¬$␈ε∃*)
␈β[␈↓ β6␈ε∃BEGIN
␈βα␈↓ β6␈ε∃SUM:=␈↓ ∧≤␈ε∃1/J␈↓ ∧`␈ε∃+␈↓ ¬α␈ε∃SUM;
␈β*␈↓ β6␈ε∃WRITELN(SUM)
␈βQ␈↓ β6␈ε∃END
␈βy␈↓ αP␈ε∃END.
␈β
4␈↓ α␈ε"is␈αThe␈αgeneral␈αform␈αof␈αdeclarations␈αwhich␈αcreate␈αstorage␈αv␈α}ariables
␈β
o␈↓ αa␈ε7I␈↓ β∞␈ε#,␈↓ β≥␈ε7I␈↓ βK␈ε#,␈↓ βZ␈ε#.␈α¬.␈αε.␈↓ ∧ε␈ε#,␈↓ ∧∃␈ε7I␈↓ ∧y␈ε7T
␈β
q␈↓ α≥␈ε∃VAR␈↓ ∧V␈ε∃:␈↓ ¬~␈ε∃;
␈β
z␈↓ αq␈ε&11␈↓ β.␈ε&21␈↓ ∧%␈ε,n␈ε&1␈↓ ¬␈ε&1
␈β∞⊗␈↓ αa␈ε7I␈↓ β∞␈ε#,␈↓ β≥␈ε7I␈↓ βK␈ε#,␈↓ βZ␈ε#.␈α¬.␈αε.␈↓ ∧ε␈ε#,␈↓ ∧∃␈ε7I␈↓ ∧y␈ε7T
␈β∞_␈↓ ∧V␈ε∃:␈↓ ¬~␈ε∃;
␈β∞"␈↓ αq␈ε&12␈↓ β.␈ε&22␈↓ ∧%␈ε,n␈ε&2␈↓ ¬␈ε&2
␈β∞@␈↓ β%␈ε∃.
␈β∞h␈↓ β%␈ε∃.
␈β∂∂␈↓ β%␈ε∃.
␈β∂5␈↓ αa␈ε7I␈↓ β_␈ε#,␈↓ β'␈ε7I␈↓ β←␈ε#,␈↓ βn␈ε#.␈α¬.␈αε.␈↓ ∧~␈ε#,␈↓ ∧)␈ε7I␈↓ ¬↔␈ε7T
␈β∂7␈↓ ∧t␈ε∃:␈↓ ¬B␈ε∃;
␈β∂@␈↓ αq␈ε&1␈ε,m␈↓ β8␈ε&2␈ε,m␈↓ ∧9␈ε,nm␈↓ ¬)␈ε,m
␈β⊃_

␈β↓H␈↓ ↓$␈∧↓H↓$α
u
␈β↓J␈↓ ↓$␈∧↓J↓$Hα␈↓ α→␈∧↓Jα→Hα␈↓ ↔␈∧↓J↔Hα
␈β↓V␈↓ ∧n␈ε>Stor␈α␈a␈α↓g␈α␈e␈α∂V␈α⎇ari␈α␈a␈α↓bl␈α␈es␈α∂and␈α∞Assi␈α␈gnm␈α␈ent
␈β↓\␈↓ ↓M␈ε"40
␈βα⊃␈↓ ↓$␈∧α⊃↓$α
u
␈βαQ␈↓ ↓H␈ε"where␈↓ α1␈ε6T␈↓ α↑␈ε"is␈α∞the␈ε/␈α
t␈α␈ype␈↓ ∧∃␈ε"of␈α
v␈α}alue␈α∞which␈α∞the␈α
v␈α}ariables␈↓ π←␈ε6I␈↓ λα␈ε",␈↓ λ∩␈ε6I␈↓ λ4␈ε",␈↓ λD␈ε".␈αε.␈αε.␈↓ λn␈ε",␈↓ λ}␈ε6I␈↓ 	%␈ε",␈αε(␈ε(n␈ε6␈α∃␈ε"␈α
1)␈α
tak␈α␈e␈α∞on.␈α∀In
␈βα]␈↓ πq␈ε%1␈↓ λ$␈ε%2␈↓ 	⊂␈ε+n
␈βα|␈↓ ↓H␈ε"addition␈αto␈αthe␈αt␈α␈ypes␈↓ ¬.␈ε"and␈↓ ε@␈ε",␈↓ εV␈ε"w␈α␈e␈αshall␈αencoun␈α␈ter␈αothers.
␈βα}␈↓ ∧≡␈ε5IN␈α␈TEGER␈↓ ¬t␈ε5REAL
␈ββ'␈↓ α␈ε"The␈αreader␈αsh␈α↓ould␈αassume␈αfor␈αthe␈αm␈α↓omen␈α␈t␈αthat␈αall␈αdeclarations␈αm␈α␈ust␈αbe␈αwritten
␈ββR␈↓ ↓H␈ε"at␈αthe␈αbeginning␈αof␈αthe␈αprogram,␈αjust␈α
a$er␈αthe␈αheader␈αlist,␈αseparated␈αby␈αsemicolons.
␈ββ}␈↓ α␈ε"is␈αn␈α↓ot␈αrepeated␈α(see␈αabo␈α␈v␈α␈e␈αexample).
␈β∧␈↓ ↓H␈ε5VA␈α␈R
␈β∧>␈↓ α6␈∧∧>α6αλQ
␈β∧@␈↓ α6␈∧∧@α6↓α␈↓ ¬␈∧∧@¬↓α
␈β∧E␈↓ ∧8␈ε2Rule␈αof␈αGo␈α↓od␈αProgramming␈αPractice:
␈β∧p␈↓ αB␈ε/F␈α⎇or␈α
ev␈α␈ery␈α∞storage␈α
v␈α}ariable,␈α∞include␈α
a␈α
commen␈α␈t␈α
explaining␈α∞what␈α
that
␈β¬≠␈↓ αB␈ε/v␈α}ariable␈αdoes,␈αand,␈αif␈αnecessary,␈αwh␈α␈y␈αand␈αh␈α↓o␈α␈w␈αit␈αdoes␈αit.
␈β¬K␈↓ α6␈∧¬Kα6αλQ
␈βε¬␈↓ ↓H␈ε2Example
␈βεB␈↓ ↓H␈ε∃(*␈↓ ↓{␈ε∃Summing␈↓ ββ␈ε∃the␈↓ βG␈ε∃first␈↓ ∧-␈ε∃100␈↓ ∧q␈ε∃perfect␈↓ ¬y␈ε∃squares.␈↓ π∩␈ε∃*)
␈βπ⊃␈↓ ↓H␈ε∃PROGRAM␈↓ αP␈ε∃SUMSQUARES␈↓ ∧␈ε∃(OUTPUT);
␈βπ9␈↓ ↓H␈ε∃VAR␈↓ α≥␈ε∃I,␈↓ ¬h␈ε∃(*␈↓ ε≠␈ε∃ITERATION␈↓ πE␈ε∃VARIABLE␈↓ λ↑␈ε∃*)
␈βπa␈↓ α≥␈ε∃SUM␈↓ αa␈ε∃:␈↓ ββ␈ε∃INTEGER;␈↓ ¬h␈ε∃(*␈↓ ε≠␈ε∃SUM␈↓ ε←␈ε∃OF␈↓ π∩␈ε∃FIRST␈↓ πx␈ε∃I␈↓ λ~␈ε∃PERFECT␈↓ 	"␈ε∃SQUARES␈↓ 
*␈ε∃*)
␈βλ0␈↓ ↓H␈ε∃BEGIN
␈βλW␈↓ ↓H␈ε∃SUM␈↓ α␈ε∃:=␈↓ α?␈ε∃0;
␈βλ␈␈↓ ↓H␈ε∃FOR␈↓ α␈ε∃I␈↓ α.␈ε∃:=␈↓ αa␈ε∃1␈↓ ββ␈ε∃TO␈↓ β6␈ε∃100␈↓ βz␈ε∃DO
␈β	'␈↓ ↓{␈ε∃SUM␈↓ α?␈ε∃:=␈↓ αr␈ε∃SUM␈↓ β6␈ε∃+␈↓ βX␈ε∃SQR(I);
␈β	N␈↓ ↓{␈ε∃WRITELN␈↓ ββ␈ε∃('SUM␈↓ βi␈ε∃OF␈↓ ∧≤␈ε∃FIRST␈↓ ¬α␈ε∃100␈↓ ¬F␈ε∃PERFECT␈↓ εN␈ε∃SQUARES␈↓ πV␈ε∃:␈↓ πx␈ε∃',␈↓ λ+␈ε∃SUM)
␈β	v␈↓ ↓H␈ε∃END.
␈β
G␈↓ ↓H␈∧
G↓Hα
-
␈β
H␈↓ ↓H␈∧
H↓Hλα␈↓ s␈∧
Hsλα
␈β
O␈↓ ↓H␈∧
O↓Hα
-
␈β
↑␈↓ ↓H␈ε∃SUM␈↓ α␈ε∃OF␈↓ α?␈ε∃FIRST␈↓ β%␈ε∃100␈↓ βi␈ε∃PERFECT␈↓ ∧q␈ε∃SQUARES␈↓ ¬y␈ε∃:␈↓ π↓␈ε∃338350
␈β→␈↓ ↓H␈∧→↓Hα
-
␈β≠␈↓ ↓H␈∧≠↓Hλα␈↓ s␈∧≠sλα
␈β"␈↓ ↓H␈∧"↓Hα
-
␈β⊃_

␈β↓H␈↓ ↓$␈∧↓H↓$α
u
␈β↓J␈↓ ↓$␈∧↓J↓$Hα␈↓ "␈∧↓J"Hα␈↓ ↔␈∧↓J↔Hα
␈β↓V␈↓ βs␈ε>Stor␈α␈a␈α↓g␈α␈e␈α∂V␈α⎇ari␈α␈a␈α↓bl␈α␈es␈α∂and␈α∞Assi␈α␈gnm␈α␈ent
␈β↓\␈↓ K␈ε"41
␈βα⊃␈↓ ↓$␈∧α⊃↓$α
u
␈βαO␈↓ ↓H␈ε2Example
␈ββ␈↓ ↓H␈ε∃(*␈↓ ↓{␈ε∃This␈↓ αP␈ε∃program␈↓ βX␈ε∃prints␈↓ ∧O␈ε∃out␈↓ ¬∪␈ε∃a␈↓ ¬5␈ε∃triangle␈↓ εN␈ε∃of␈↓ π↓␈ε∃consecutive␈↓ λM␈ε∃integers␈↓ 	f␈ε∃*)
␈ββ\␈↓ ↓H␈ε∃PROGRAM␈↓ αP␈ε∃TRIANGLE␈↓ βi␈ε∃(␈↓ ∧␈ε∃OUTPUT␈↓ ¬α␈ε∃)␈↓ ¬$␈ε∃;
␈β∧β␈↓ ↓H␈ε∃VAR␈↓ αP␈ε∃LINE␈↓ β%␈ε∃,␈↓ εp␈ε∃(*␈↓ π#␈ε∃LINENUMBER␈↓ λ↑␈ε∃*)
␈β∧+␈↓ αP␈ε∃COLUMN␈↓ βG␈ε∃,␈↓ εp␈ε∃(*␈↓ π#␈ε∃COLUMNNUMBER␈↓ 	␈ε∃*)
␈β∧R␈↓ αP␈ε∃COUNTER␈↓ ∧>␈ε∃:␈↓ ∧`␈ε∃INTEGER␈↓ ¬h␈ε∃;␈↓ εp␈ε∃(*␈↓ π#␈ε∃CURRENT␈↓ λ+␈ε∃NUMBER␈↓ 	"␈ε∃TO␈↓ 	U␈ε∃BE␈↓ 
λ␈ε∃PRINTED␈↓ ⊂␈ε∃*)
␈β∧z␈↓ ↓H␈ε∃BEGIN
␈β¬"␈↓ ↓H␈ε∃(*␈↓ ↓{␈ε∃INITIALIZATION␈↓ βz␈ε∃*)
␈β¬I␈↓ ↓H␈ε∃COUNTER␈↓ αP␈ε∃:=␈↓ ββ␈ε∃0␈↓ β%␈ε∃;
␈β¬q␈↓ ↓H␈ε∃(*␈↓ ↓{␈ε∃PRINT␈↓ αa␈ε∃TRIANGLE␈↓ βz␈ε∃*)
␈βε_␈↓ ↓H␈ε∃FOR␈↓ α␈ε∃LINE␈↓ αa␈ε∃:=␈↓ β∀␈ε∃1␈↓ β6␈ε∃TO␈↓ βi␈ε∃10␈↓ ∧≤␈ε∃DO
␈βε@␈↓ α␈ε∃BEGIN␈↓ ¬h␈ε∃(*␈↓ ε≠␈ε∃PRINT␈↓ π↓␈ε∃ONE␈↓ πE␈ε∃LINE␈↓ λ~␈ε∃*)
␈βεh␈↓ α␈ε∃FOR␈↓ αP␈ε∃COLUMN␈↓ βG␈ε∃:=␈↓ βz␈ε∃1␈↓ ∧≤␈ε∃TO␈↓ ∧O␈ε∃LINE␈↓ ¬$␈ε∃DO
␈βπ∂␈↓ αP␈ε∃BEGIN␈↓ ¬h␈ε∃(*␈↓ ε≠␈ε∃PRINT␈↓ π↓␈ε∃ONE␈↓ πE␈ε∃NUMBER␈↓ λ<␈ε∃*)
␈βπ7␈↓ αP␈ε∃COUNTER␈↓ βX␈ε∃:=␈↓ ∧␈ε∃COUNTER␈↓ ¬∪␈ε∃+␈↓ ¬5␈ε∃1␈↓ ¬W␈ε∃;
␈βπ↑␈↓ αP␈ε∃WRITE␈↓ β6␈ε∃(␈↓ βX␈ε∃COUNTER:3␈↓ ¬α␈ε∃)
␈βλε␈↓ αP␈ε∃END␈↓ β∀␈ε∃;
␈βλ.␈↓ α␈ε∃WRITELN
␈βλU␈↓ α␈ε∃END
␈βλ⎇␈↓ ↓H␈ε∃END.
␈β	M␈↓ ↓H␈∧	M↓Hα
-
␈β	O␈↓ ↓H␈∧	O↓Hλα␈↓ s␈∧	Osλα
␈β	V␈↓ ↓H␈∧	V↓Hα
-
␈β	e␈↓ ↓j␈ε∃1
␈β

␈↓ ↓j␈ε∃2␈↓ α≥␈ε∃3
␈β
4␈↓ ↓j␈ε∃4␈↓ α≥␈ε∃5␈↓ αP␈ε∃6
␈β
\␈↓ ↓j␈ε∃7␈↓ α≥␈ε∃8␈↓ αP␈ε∃9␈↓ αr␈ε∃10
␈β∧␈↓ ↓Y␈ε∃11␈↓ α␈ε∃12␈↓ α?␈ε∃13␈↓ αr␈ε∃14␈↓ β%␈ε∃15
␈β+␈↓ ↓Y␈ε∃16␈↓ α␈ε∃17␈↓ α?␈ε∃18␈↓ αr␈ε∃19␈↓ β%␈ε∃20␈↓ βX␈ε∃21
␈βS␈↓ ↓Y␈ε∃22␈↓ α␈ε∃23␈↓ α?␈ε∃24␈↓ αr␈ε∃25␈↓ β%␈ε∃26␈↓ βX␈ε∃27␈↓ ∧␈ε∃28
␈βz␈↓ ↓Y␈ε∃29␈↓ α␈ε∃30␈↓ α?␈ε∃31␈↓ αr␈ε∃32␈↓ β%␈ε∃33␈↓ βX␈ε∃34␈↓ ∧␈ε∃35␈↓ ∧>␈ε∃36
␈β"␈↓ ↓Y␈ε∃37␈↓ α␈ε∃38␈↓ α?␈ε∃39␈↓ αr␈ε∃40␈↓ β%␈ε∃41␈↓ βX␈ε∃42␈↓ ∧␈ε∃43␈↓ ∧>␈ε∃44␈↓ ∧q␈ε∃45
␈βJ␈↓ ↓Y␈ε∃46␈↓ α␈ε∃47␈↓ α?␈ε∃48␈↓ αr␈ε∃49␈↓ β%␈ε∃50␈↓ βX␈ε∃51␈↓ ∧␈ε∃52␈↓ ∧>␈ε∃53␈↓ ∧q␈ε∃54␈↓ ¬$␈ε∃55
␈β
¬␈↓ ↓H␈∧
¬↓Hα
-
␈β
ε␈↓ ↓H␈∧
ε↓Hλα␈↓ s␈∧
εsλα
␈β

␈↓ ↓H␈∧

↓Hα
-
␈β⊃_

␈β↓H␈↓ ↓$␈∧↓H↓$α
u
␈β↓J␈↓ ↓$␈∧↓J↓$Hα␈↓ α→␈∧↓Jα→Hα␈↓ ↔␈∧↓J↔Hα
␈β↓V␈↓ ∧n␈ε>Stor␈α␈a␈α↓g␈α␈e␈α∂V␈α⎇ari␈α␈a␈α↓bl␈α␈es␈α∂and␈α∞Assi␈α␈gnm␈α␈ent
␈β↓\␈↓ ↓M␈ε"42
␈βα⊃␈↓ ↓$␈∧α⊃↓$α
u
␈βαO␈↓ ↓H␈ε2Exercise
␈βαx␈↓ α␈ε$What␈α
does␈α
thi␈α␈s␈αpr␈α␈o␈α↓gram␈αdra␈α␈w?
␈ββ0␈↓ ↓H␈ε∃PROGRAM␈↓ αP␈ε∃P␈↓ αr␈ε∃;
␈ββX␈↓ ↓H␈ε∃VAR␈↓ α≥␈ε∃S,␈↓ αP␈ε∃A,␈↓ ββ␈ε∃DS,␈↓ βG␈ε∃DA,␈↓ ∧␈ε∃L,␈↓ ∧>␈ε∃C␈↓ ∧q␈ε∃:␈↓ ¬∪␈ε∃INTEGER␈↓ ε≠␈ε∃;
␈β∧'␈↓ ↓H␈ε∃BEGIN
␈β∧O␈↓ ↓H␈ε∃S␈↓ ↓j␈ε∃:=␈↓ α≥␈ε∃24␈↓ αP␈ε∃;
␈β∧v␈↓ ↓H␈ε∃A␈↓ ↓j␈ε∃:=␈↓ α≥␈ε∃1␈↓ α?␈ε∃;
␈β¬≤␈↓ α.␈ε7␈
␈β¬≡␈↓ ↓H␈ε∃DS␈↓ ↓{␈ε∃:=␈↓ αO␈ε∃1␈↓ αq␈ε∃;
␈β¬F␈↓ ↓H␈ε∃DA␈↓ ↓{␈ε∃:=␈↓ α.␈ε∃2␈↓ αP␈ε∃;
␈β¬m␈↓ ↓H␈ε∃FOR␈↓ α␈ε∃L␈↓ α.␈ε∃:=␈↓ αa␈ε∃0␈↓ ββ␈ε∃TO␈↓ β6␈ε∃48␈↓ βi␈ε∃DO
␈βε∃␈↓ α␈ε∃BEGIN
␈βε<␈↓ α␈ε∃FOR␈↓ αP␈ε∃C␈↓ αr␈ε∃:=␈↓ β%␈ε∃1␈↓ βG␈ε∃TO␈↓ βz␈ε∃S␈↓ ∧≤␈ε∃DO␈↓ ∧O␈ε∃WRITE('␈↓ ¬W␈ε∃')␈↓ ε
␈ε∃;
␈βεd␈↓ α␈ε∃FOR␈↓ αP␈ε∃C␈↓ αr␈ε∃:=␈↓ β%␈ε∃1␈↓ βG␈ε∃TO␈↓ βz␈ε∃A␈↓ ∧≤␈ε∃DO␈↓ ∧O␈ε∃WRITE('*')␈↓ ε
␈ε∃;
␈βπ␈↓ α␈ε∃WRITELN␈↓ β∀␈ε∃;
␈βπ3␈↓ α␈ε∃IF␈↓ α?␈ε∃L␈↓ αa␈ε∃=␈↓ ββ␈ε∃24␈↓ β6␈ε∃THEN
␈βπ[␈↓ αP␈ε∃BEGIN
␈βλα␈↓ αP␈ε∃DS␈↓ ββ␈ε∃:=␈↓ β6␈ε∃1␈↓ βX␈ε∃;
␈βλ(␈↓ β6␈ε7␈
␈βλ*␈↓ αP␈ε∃DA␈↓ ββ␈ε∃:=␈↓ βW␈ε∃2
␈βλR␈↓ αP␈ε∃END␈↓ β∀␈ε∃;
␈βλy␈↓ α␈ε∃S␈↓ α.␈ε∃:=␈↓ αa␈ε∃S␈↓ ββ␈ε∃+␈↓ β%␈ε∃DS␈↓ βX␈ε∃;
␈β	!␈↓ α␈ε∃A␈↓ α.␈ε∃:=␈↓ αa␈ε∃A␈↓ ββ␈ε∃+␈↓ β%␈ε∃DA
␈β	H␈↓ α␈ε∃END
␈β	p␈↓ ↓H␈ε∃END␈↓ α␈ε∃.
␈β⊃_

␈β↓H␈↓ ↓$␈∧↓H↓$α
u
␈β↓J␈↓ ↓$␈∧↓J↓$Hα␈↓ "␈∧↓J"Hα␈↓ ↔␈∧↓J↔Hα
␈β↓V␈↓ ¬\␈ε>Readin␈α␈g
␈β↓\␈↓ K␈ε"43
␈βα⊃␈↓ ↓$␈∧α⊃↓$α
u
␈βα[␈↓ ↓H␈ε>R␈α␈ea␈α↓di␈α␈ng␈α␈.
␈ββ≡␈↓ α␈ε"The␈α∞programs␈α∂w␈α␈e␈α∞ha␈α␈v␈α␈e␈α∞seen␈α∞un␈α␈til␈α∞n␈α↓o␈α␈w␈α∂ha␈α␈v␈α␈e␈α∞each␈α∞been␈α∞capable␈α∂of␈α∞only␈α∞a␈α∞single
␈ββI␈↓ ↓H␈ε"computation.␈α⊂T␈α⎇o␈αenable␈α
a␈αprogram␈αto␈αsolv␈α␈e␈αa␈αdi{eren␈α␈t␈α
problem␈αeach␈αtime␈αit␈αis␈αused,
␈ββu␈↓ ↓H␈ε"w␈α␈e␈α
ha␈α␈v␈α␈e␈αto␈α
pro␈α␈vide␈αit␈α
with␈αdi{eren␈α␈t␈α
information␈αeach␈α
time␈α
it␈αis␈α
run.␈α⊂This␈α
information
␈β∧ ␈↓ ↓H␈ε"can␈α∂be␈α∂obtained␈α∞from␈α∂a␈α∂|le,␈α⊂or␈α∂from␈α∂the␈α∂program's␈α∂user␈α∂at␈α∂his␈α∂terminal.␈α→T␈α⎇o␈α∞get␈α∂a
␈β∧K␈↓ ↓H␈ε"n␈α␈um␈α␈ber␈αfrom␈αthe␈α|le␈αcalled␈↓ ¬\␈ε",␈αand␈αassign␈αit␈αto␈αv␈α}ariable␈↓ 	␈ε",␈αuse␈αthe␈αcommand
␈β∧M␈↓ ∧}␈ε5IN␈α␈PUT␈↓ λy␈ε5X
␈β¬!␈↓ αX␈ε5RE␈α␈AD(INPUT,X␈α␈)
␈β¬t␈↓ ↓H␈ε"or␈αequiv␈α}alen␈α␈tly
␈βεJ␈↓ αX␈ε5RE␈α␈AD(X)
␈βπ≤␈↓ ↓H␈ε"T␈α⎇o␈αget␈αa␈αn␈α␈um␈α␈ber␈αfrom␈αthe␈αuser␈αat␈αthe␈αterminal,␈αand␈αassign␈αit␈αto␈↓ 	K␈ε",␈αuse␈αthe␈αcommand
␈βπ≡␈↓ 	8␈ε5X
␈βπs␈↓ αX␈ε5RE␈α␈AD(TTY,X)
␈βλE␈↓ ↓H␈ε"where␈αTTY␈α(an␈αabbreviation␈αfor␈αtelet␈α␈ype)␈αis␈αthe␈αPascal␈αname␈αof␈αthe␈αterminal.␈α∂When
␈βλp␈↓ ↓H␈ε"this␈αcommand␈αis␈αexecuted,␈αthe␈αprogram␈αwill␈αw␈α␈ait␈αfor␈αthe␈αuser␈αto␈αt␈α␈ype␈αin␈αthe␈αrequired
␈β	≤␈↓ ↓H␈ε"n␈α␈um␈α␈ber,␈αincluding␈αa␈αspace␈αor␈αcarriage␈αreturn␈αto␈αend␈αit.
␈β	G␈↓ α␈ε"A␈α	program␈α
to␈α	tak␈α␈e␈α	a␈α	n␈α␈um␈α␈ber␈α	from␈α
the␈α	input␈α	|le,␈α
and␈α	prin␈α␈t␈α	it␈α
along␈α	with␈α	its␈α	square
␈β	r␈↓ ↓H␈ε"ro␈α↓ot,␈αmigh␈α␈t␈αbe
␈β
/␈↓ αP␈ε∃PROGRAM␈↓ βX␈ε∃SQUAREROOT;
␈β
W␈↓ αP␈ε∃VAR␈↓ β∀␈ε∃X:REAL;
␈β
␈␈↓ αP␈ε∃BEGIN
␈β&␈↓ αP␈ε∃READ(X);
␈βN␈↓ αP␈ε∃WRITELN(X,␈↓ ∧␈ε∃SQRT(X))
␈βu␈↓ αP␈ε∃END.
␈β2␈↓ α␈ε"A␈α
similar␈α
program,␈αtaking␈α
the␈α
n␈α␈um␈α␈ber␈α
from␈αthe␈α
terminal,␈α
could␈α
be␈α
obtained␈αby
␈β]␈↓ ↓H␈ε"using␈αthe␈αcommand
␈β
4␈↓ αX␈ε5RE␈α␈AD(TTY,X)
␈β∞ε␈↓ ↓H␈ε"Ho␈α␈w␈α␈ev␈α␈er,␈αthis␈αprogram␈αw␈α␈ould␈αdo␈αn␈α↓othing␈αto␈αtell␈αthe␈αuser␈αthat␈αit␈αw␈α␈as␈αw␈α␈aiting␈αfor␈αhim
␈β∞1␈↓ ↓H␈ε"to␈α
t␈α␈ype␈αsomething,␈αn␈α↓or␈α
what␈αit␈αneeded.␈α∂A␈αbetter␈α
program␈αw␈α␈ould␈α|rst␈α
prin␈α␈t␈αa␈α
message
␈β∞\␈↓ ↓H␈ε"describing␈α	the␈α
desired␈α
input,␈α
and␈α	then␈α
execute␈α
a␈↓ 	␈ε"command␈α
(which␈α	mak␈α␈es
␈β∞↑␈↓ π9␈ε5BREAK(TTY)
␈β∂λ␈↓ ↓H␈ε"the␈α∞program␈α∞complete␈α∂all␈α∞terminal␈α∞output␈α∂before␈α∞taking␈α∂an␈α␈y␈α∞input).␈α↔The␈α∞complete
␈β∂3␈↓ ↓H␈ε"program␈αmigh␈α␈t␈αbe:
␈β⊃∨

␈β↓H␈↓ ↓$␈∧↓H↓$α
u
␈β↓J␈↓ ↓$␈∧↓J↓$Hα␈↓ α→␈∧↓Jα→Hα␈↓ ↔␈∧↓J↔Hα
␈β↓V␈↓ εW␈ε>Readin␈α␈g
␈β↓\␈↓ ↓M␈ε"44
␈βα⊃␈↓ ↓$␈∧α⊃↓$α
u
␈βαN␈↓ αP␈ε∃PROGRAM␈↓ βX␈ε∃SQUAREROOT;
␈βαu␈↓ ββ␈ε∃VAR␈↓ βG␈ε∃X:REAL;
␈ββ≥␈↓ αP␈ε∃BEGIN
␈ββD␈↓ αP␈ε∃WRITELN(TTY,'ENTER␈↓ ¬∪␈ε∃POSITIVE␈↓ ε,␈ε∃NUMBER␈↓ π#␈ε∃FOR␈↓ πg␈ε∃SQUARE␈↓ λ↑␈ε∃ROOT');
␈ββl␈↓ αP␈ε∃BREAK(TTY);
␈β∧∀␈↓ αP␈ε∃READ(TTY,␈↓ βz␈ε∃X);
␈β∧;␈↓ αP␈ε∃WRITELN␈↓ βX␈ε∃(X,␈↓ ∧≤␈ε∃SQRT(X))
␈β∧c␈↓ αP␈ε∃END.
␈β¬≥␈↓ ↓H␈ε"When␈αthis␈αprogram␈αis␈αrun,␈αthe␈αprogram␈αt␈α␈ypes
␈β¬\␈↓ αX␈ε5EN␈α␈TER␈α∪POSITI␈α␈VE␈α∪NUMBER␈α∩FOR␈α∪SQUARE␈α∩ROOT
␈βε↔␈↓ ↓H␈ε"If␈αthe␈αuser␈αthen␈αt␈α␈ypes␈α2,␈αfollo␈α␈w␈α␈ed␈αby␈αa␈↓ π≤␈ε",␈αthe␈αprogram␈αputs
␈βε→␈↓ ε+␈ε5RE␈α␈TURN
␈βεW␈↓ αX␈ε52␈α∩1.414214
␈βπ∩␈↓ ↓H␈ε"in␈αthe␈αoutput␈α|le.
␈βπ=␈↓ α␈ε"Usually,␈α∂a␈α∞program␈α∞will␈α∞need␈α∞sev␈α␈eral␈α∞pieces␈α∞of␈α∞information␈α∞from␈α∞the␈α∞user.␈α⊗It␈α∞is
␈βπh␈↓ ↓H␈ε"usually␈α⊂advisable␈α⊃for␈α⊂the␈α⊃program␈α⊂to␈α⊃prin␈α␈t␈α⊂a␈α⊃request␈α⊂for␈α⊃each,␈α⊃before␈α⊃executing␈α⊂a
␈βλ∀␈↓ ↓H␈ε"read␈αcommand.␈α⊂(This␈αis␈αcalled␈ε/␈αprompting␈↓ εa␈ε"the␈αuser.)␈α⊂A␈αprogram␈αto␈αget␈αt␈α␈w␈α␈o␈αn␈α␈um␈α␈bers,
␈βλ?␈↓ ↓H␈ε"prin␈α␈ting␈αthe␈αsquare␈αro␈α↓ot␈αof␈αthe␈α|rst␈αand␈αthe␈αsquare␈αof␈αthe␈αsecond,␈αmigh␈α␈t␈αbe:
␈βλz␈↓ α.␈ε∃PROGRAM␈↓ β6␈ε∃P;
␈β	!␈↓ α.␈ε∃(declarations)
␈β	I␈↓ α.␈ε∃BEGIN
␈β	p␈↓ α.␈ε∃WRITELN(TTY,␈↓ ∧␈ε∃'SQUARE␈↓ ¬∪␈ε∃ROOT␈↓ ¬h␈ε∃OF');␈↓ εN␈ε∃(*␈↓ π↓␈ε∃OUTPUT␈↓ πx␈ε∃TO␈↓ λ+␈ε∃TERMINAL␈↓ 	D␈ε∃*)
␈β
_␈↓ α.␈ε∃BREAK(TTY);
␈β
@␈↓ α.␈ε∃READ␈↓ ββ␈ε∃(TTY,␈↓ βi␈ε∃X);
␈β
g␈↓ α.␈ε∃WRITELN('SQUARE␈↓ ∧>␈ε∃ROOT␈↓ ¬∪␈ε∃OF',␈↓ ¬h␈ε∃X,␈↓ ε≠␈ε∃'=',␈↓ εp␈ε∃SQRT(X));␈↓ λ~␈ε∃(*␈↓ λM␈ε∃OUTPUT␈↓ 	D␈ε∃TO␈↓ 	w␈ε∃FILE␈↓ 
L␈ε∃*)
␈β∂␈↓ α.␈ε∃WRITELN␈↓ β6␈ε∃(TTY,␈↓ ∧≤␈ε∃'SQUARE␈↓ ¬$␈ε∃OF');␈↓ ε≠␈ε∃(*␈↓ εN␈ε∃OUTPUT␈↓ πE␈ε∃TO␈↓ πx␈ε∃TERMINAL␈↓ 	⊃␈ε∃*)
␈β6␈↓ α.␈ε∃BREAK(TTY);
␈β↑␈↓ α.␈ε∃READ␈↓ ββ␈ε∃(TTY,␈↓ βi␈ε∃X);
␈βε␈↓ α.␈ε∃WRITELN␈↓ β6␈ε∃('SQUARE␈↓ ∧O␈ε∃OF',␈↓ ¬$␈ε∃X,␈↓ ¬W␈ε∃'=',␈↓ ε,␈ε∃X*X)␈↓ π∩␈ε∃(*␈↓ πE␈ε∃OUTPUT␈↓ λ<␈ε∃TO␈↓ λo␈ε∃FILE␈↓ 	D␈ε∃*)
␈β-␈↓ α.␈ε∃END
␈βg␈↓ α␈ε"Alternativ␈α␈ely,␈αto␈αpresen␈α␈t␈αresults␈αat␈αthe␈αterminal,␈αthe␈αsecond␈αand␈αfourth
␈βi␈↓ 
p␈ε5WRITELN
␈β
∩␈↓ ↓H␈ε"commands␈αcould␈αbe␈αchanged␈αto
␈β
R␈↓ αX␈ε5WR␈α␈ITELN␈α∪(TTY␈α␈,␈α∪'=',␈α∪SQR␈α␈T␈α∪(X));
␈β∞
␈↓ ↓H␈ε"and
␈β∞L␈↓ αX␈ε5WR␈α␈ITELN␈α∪(TTY␈α␈,␈α∪'=',␈α∪X*X␈α␈).
␈β∂λ␈↓ ↓H␈ε"When␈α⊃this␈α∩second␈α⊃v␈α␈ersion␈α∩of␈α⊃the␈α∩program␈α∩is␈α⊃executed,␈α∪the␈α∩results␈α⊃prin␈α␈ted␈α∩at␈α⊃the
␈β∂3␈↓ ↓H␈ε"terminal␈αmigh␈α␈t␈αbe
␈β⊃∨

␈β↓H␈↓ ↓$␈∧↓H↓$α
u
␈β↓J␈↓ ↓$␈∧↓J↓$Hα␈↓ "␈∧↓J"Hα␈↓ ↔␈∧↓J↔Hα
␈β↓V␈↓ ¬\␈ε>Readin␈α␈g
␈β↓\␈↓ K␈ε"45
␈βα⊃␈↓ ↓$␈∧α⊃↓$α
u
␈βαT␈↓ ↓H␈∧αT↓Hα
-
␈βαU␈↓ ↓H␈∧αU↓Hλα␈↓ s␈∧αUsλα
␈βα\␈↓ ↓H␈∧α\↓Hα
-
␈βαk␈↓ αP␈ε∃SQUARE␈↓ βG␈ε∃ROOT␈↓ ∧≤␈ε∃OF
␈ββ∪␈↓ αP␈ε∃2
␈ββ;␈↓ αP␈ε∃=␈↓ αr␈ε∃1.414214
␈ββb␈↓ αP␈ε∃SQUARE␈↓ βG␈ε∃OF
␈β∧
␈↓ αP␈ε∃11
␈β∧1␈↓ αP␈ε∃=␈↓ αr␈ε∃121
␈β∧m␈↓ ↓H␈∧∧m↓Hα
-
␈β∧n␈↓ ↓H␈∧∧n↓Hλα␈↓ s␈∧∧nsλα
␈β∧u␈↓ ↓H␈∧∧u↓Hα
-
␈β¬∧␈↓ ↓H␈ε"where␈αthe␈αuser␈αt␈α␈yped␈αthe␈↓ ∧{␈ε"and␈↓ ¬f␈ε",␈αthe␈αrest␈αbeing␈αprin␈α␈ted␈αby␈αthe␈αprogram.
␈β¬ε␈↓ ∧\␈ε52␈↓ ¬A␈ε51␈α␈1
␈β¬/␈↓ α␈ε"It␈α∞is␈α∂importan␈α␈t␈α∞that␈α∂a␈α∞program␈α∂to␈α∞be␈α∂used␈α∞from␈α∂a␈α∞terminal␈α∂sh␈α↓ould␈ε/␈α∞prompt␈ε"␈α∞the
␈β¬Z␈↓ ↓H␈ε"user␈α∂with␈α⊂a␈α∂description␈α⊂of␈α⊂each␈α∂desired␈α⊂datum.␈α≠It␈α∂is␈α⊂also␈α⊂importan␈α␈t␈α∂to␈α⊂include␈α∂all
␈βε¬␈↓ ↓H␈ε"input␈αdata␈αin␈αthe␈αoutput␈α|le,␈αto␈αcon|rm␈αthe␈αcorrectness␈αof␈αthe␈αdata␈αen␈α␈try.
␈βεD␈↓ α6␈∧εDα6αλQ
␈βεE␈↓ α6␈∧εEα6α∞α␈↓ ¬␈∧εE¬α∞α
␈βεK␈↓ ∧8␈ε2Rule␈αof␈αGo␈α↓od␈αProgramming␈αPractice:
␈βεv␈↓ αB␈ε/An␈αexplanatory␈α
prompt␈αsh␈α↓ould␈α
precede␈αall␈α
terminal␈αinput␈α
operations.
␈βπ!␈↓ αB␈ε/It␈α
sh␈α↓ould␈αbe␈α
clear␈αto␈α
a␈αuser␈α
wh␈α↓o␈αdoes␈α
n␈α↓ot␈αkn␈α↓o␈α␈w␈α
the␈α
program␈αdetails.
␈βπL␈↓ αB␈ε/All␈α	input␈αλdata␈α	sh␈α↓ould␈αλappear␈α	in␈αλthe␈α	output␈αλ|le.␈α∂This␈α	is␈αλdone␈α	to␈αλprotect
␈βπw␈↓ αB␈ε/against␈α⊃the␈α⊃possibilit␈α␈y␈α⊂that␈α⊃the␈α⊃user␈α⊃made␈α⊂a␈α⊃t␈α␈yping␈α⊃error.␈α≡Such␈α⊃a
␈βλ"␈↓ αB␈ε/repetition␈αof␈αinput␈αin␈αthe␈αoutput␈αis␈αcalled␈αan␈αech␈α↓o.
␈βλR␈↓ α6␈∧λRα6αλQ
␈β⊃_

␈β↓H␈↓ ↓$␈∧↓H↓$α
u
␈β↓J␈↓ ↓$␈∧↓J↓$Hα␈↓ α→␈∧↓Jα→Hα␈↓ ↔␈∧↓J↔Hα
␈β↓V␈↓ εW␈ε>Readin␈α␈g
␈β↓\␈↓ ↓M␈ε"46
␈βα⊃␈↓ ↓$␈∧α⊃↓$α
u
␈βαO␈↓ ↓H␈ε2Example
␈ββ_␈↓ ↓H␈ε∃(*␈↓ ↓{␈ε∃A␈↓ α≥␈ε∃PROGRAM␈↓ β%␈ε∃TO␈↓ βX␈ε∃COMPUTE␈↓ ∧`␈ε∃AND␈↓ ¬$␈ε∃PRINT␈↓ ε
␈ε∃THE␈↓ εN␈ε∃RUNNING␈↓ πV␈ε∃BALANCE␈↓ λ↑␈ε∃OF␈↓ 	⊃␈ε∃A␈↓ 	3␈ε∃BANK␈↓ 
]␈ε∃*)
␈ββ?␈↓ ↓H␈ε∃(*␈↓ α␈ε∃ACCOUNT.␈↓ 
]␈ε∃*)
␈ββg␈↓ ↓H␈ε∃(*␈↓ α␈ε∃INPUT␈↓ β%␈ε∃:␈↓ βX␈ε∃THE␈↓ ∧≤␈ε∃NUMBER␈↓ ¬∪␈ε∃OF␈↓ ¬F␈ε∃CHECKS␈↓ ε=␈ε∃TO␈↓ εp␈ε∃BE␈↓ π#␈ε∃ENTERED␈↓ λ+␈ε∃IN␈↓ λ↑␈ε∃THE␈↓ 	"␈ε∃BALANCE␈↓ 
]␈ε∃*)
␈β∧∞␈↓ ↓H␈ε∃(*␈↓ βX␈ε∃THE␈↓ ∧≤␈ε∃INITIAL␈↓ ¬$␈ε∃BALANCE␈↓ 
]␈ε∃*)
␈β∧6␈↓ ↓H␈ε∃(*␈↓ βX␈ε∃THE␈↓ ∧≤␈ε∃AMOUNT␈↓ ¬∪␈ε∃OF␈↓ ¬F␈ε∃EACH␈↓ ε≠␈ε∃INDIVIDUAL␈↓ πV␈ε∃CHECK␈↓ 
]␈ε∃*)
␈⬬␈↓ ↓H␈ε∃PROGRAM␈↓ αP␈ε∃BALANCE␈↓ βX␈ε∃(␈↓ βz␈ε∃INPUT*␈↓ ∧q␈ε∃,␈↓ ¬∪␈ε∃OUTPUT␈↓ ε
␈ε∃)␈↓ ε,␈ε∃;
␈β¬-␈↓ ↓H␈ε∃VAR␈↓ αP␈ε∃I,
␈β¬T␈↓ αP␈ε∃COUNT␈↓ βi␈ε∃:␈↓ ∧≤␈ε∃INTEGER␈↓ ¬$␈ε∃;␈↓ ε
␈ε∃(*␈↓ ε=␈ε∃NUMBER␈↓ π4␈ε∃OF␈↓ πg␈ε∃CHECKS␈↓ λ↑␈ε∃*)
␈β¬|␈↓ αP␈ε∃CHECK,␈↓ ε
␈ε∃(*␈↓ ε=␈ε∃AMOUNT␈↓ π4␈ε∃OF␈↓ πg␈ε∃A␈↓ λ	␈ε∃CHECK␈↓ λo␈ε∃*)
␈βε$␈↓ αP␈ε∃BALANCE␈↓ βi␈ε∃:␈↓ ∧≤␈ε∃REAL␈↓ ∧q␈ε∃;␈↓ ε
␈ε∃(*␈↓ ε=␈ε∃BALANCE␈↓ πE␈ε∃OF␈↓ πx␈ε∃ACCOUNT␈↓ 	␈ε∃*)
␈βεK␈↓ ↓H␈ε∃BEGIN
␈βεs␈↓ ↓H␈ε∃(*␈↓ ↓{␈ε∃READ␈↓ αP␈ε∃INITIAL␈↓ βX␈ε∃DATA␈↓ ∧-␈ε∃*)
␈βπ~␈↓ ↓H␈ε∃READ␈↓ α≥␈ε∃(␈↓ α?␈ε∃COUNT␈↓ β%␈ε∃)␈↓ βG␈ε∃;
␈βπB␈↓ ↓H␈ε∃READ␈↓ α≥␈ε∃(BALANCE␈↓ β6␈ε∃)␈↓ βX␈ε∃;
␈βπj␈↓ ↓H␈ε∃(*␈↓ ↓{␈ε∃PRINT␈↓ αa␈ε∃INITIAL␈↓ βi␈ε∃DATA␈↓ ∧>␈ε∃AND␈↓ ¬α␈ε∃HEADER␈↓ ¬y␈ε∃*)
␈βλ⊃␈↓ ↓H␈ε∃WRITELN␈↓ αP␈ε∃('␈↓ ββ␈ε∃INITIAL␈↓ ∧␈ε∃BALANCE␈↓ ¬y␈ε∃:',BALANCE:8:2␈↓ πx␈ε∃)␈↓ λ~␈ε∃;
␈βλ9␈↓ ↓H␈ε∃WRITELN␈↓ αP␈ε∃('␈↓ ββ␈ε∃NUMBER␈↓ βz␈ε∃OF␈↓ ∧-␈ε∃CHECKS␈↓ ¬y␈ε∃:',COUNT:5␈↓ π4␈ε∃)␈↓ πV␈ε∃;
␈βλ`␈↓ ↓H␈ε∃WRITELN␈↓ αP␈ε∃;
␈β	λ␈↓ ↓H␈ε∃WRITELN␈↓ αP␈ε∃('␈↓ ββ␈ε∃CHECK␈↓ βi␈ε∃NO.␈↓ ∧`␈ε∃AMOUNT␈↓ ε,␈ε∃BALANCE'␈↓ πE␈ε∃)␈↓ πg␈ε∃;
␈β	0␈↓ ↓H␈ε∃WRITELN␈↓ αP␈ε∃('---------------------------------'␈↓ πE␈ε∃)␈↓ πg␈ε∃;
␈β	W␈↓ ↓H␈ε∃(*␈↓ ↓{␈ε∃PROCESS␈↓ ββ␈ε∃THE␈↓ βG␈ε∃CHECKS␈↓ ∧>␈ε∃*)
␈β	␈␈↓ ↓H␈ε∃FOR␈↓ α␈ε∃I␈↓ α.␈ε∃:=␈↓ αa␈ε∃1␈↓ ββ␈ε∃TO␈↓ β6␈ε∃COUNT␈↓ ∧≤␈ε∃DO
␈β
&␈↓ α␈ε∃BEGIN
␈β
N␈↓ α␈ε∃READ␈↓ αa␈ε∃(␈↓ ββ␈ε∃CHECK␈↓ βi␈ε∃)␈↓ ∧␈ε∃;
␈β
v␈↓ α␈ε∃BALANCE␈↓ β∀␈ε∃:=␈↓ βG␈ε∃BALANCE␈↓ ∧O␈ε∃-␈↓ ∧q␈ε∃CHECK␈↓ ¬h␈ε∃;
␈β≥␈↓ α␈ε∃WRITELN␈↓ β∀␈ε∃(␈↓ β6␈ε∃I:10␈↓ ∧␈ε∃,␈↓ ∧-␈ε∃CHECK:10:2␈↓ ¬h␈ε∃,␈↓ ε
␈ε∃BALANCE:12:2␈↓ πg␈ε∃)
␈βE␈↓ α␈ε∃END
␈βl␈↓ ↓H␈ε∃END.
␈β
↓␈↓ ↓H␈ε∃Input␈↓ α?␈ε∃:
␈β
(␈↓ ↓H␈ε∃--------
␈β
P␈↓ ↓H␈ε∃4
␈β
w␈↓ ↓H␈ε∃234.60
␈β∞∨␈↓ ↓H␈ε∃125.00
␈β∞G␈↓ ↓H␈ε∃4.50
␈β∞n␈↓ ↓H␈ε∃61.05
␈β∂⊗␈↓ ↓H␈ε∃5.00
␈β⊃_

␈β↓H␈↓ ↓$␈∧↓H↓$α
u
␈β↓J␈↓ ↓$␈∧↓J↓$Hα␈↓ "␈∧↓J"Hα␈↓ ↔␈∧↓J↔Hα
␈β↓V␈↓ ¬\␈ε>Readin␈α␈g
␈β↓\␈↓ K␈ε"47
␈βα⊃␈↓ ↓$␈∧α⊃↓$α
u
␈βαT␈↓ ↓H␈∧αT↓Hα
-
␈βαU␈↓ ↓H␈∧αU↓Hλα␈↓ s␈∧αUsλα
␈βα\␈↓ ↓H␈∧α\↓Hα
-
␈βαk␈↓ ↓H␈ε∃INITIAL␈↓ αP␈ε∃BALANCE␈↓ ∧O␈ε∃:␈↓ ¬α␈ε∃234.60
␈ββ∪␈↓ ↓H␈ε∃NUMBER␈↓ α?␈ε∃OF␈↓ αr␈ε∃CHECKS␈↓ ∧O␈ε∃:␈↓ ¬$␈ε∃4
␈ββb␈↓ ↓H␈ε∃CHECK␈↓ α.␈ε∃NO.␈↓ β%␈ε∃AMOUNT␈↓ ¬α␈ε∃BALANCE
␈β∧
␈↓ ↓H␈ε∃---------------------------------
␈β∧1␈↓ αP␈ε∃1␈↓ β%␈ε∃125.00␈↓ ¬∪␈ε∃109.60
␈β∧Y␈↓ αP␈ε∃2␈↓ βG␈ε∃4.50␈↓ ¬∪␈ε∃105.09
␈β¬↓␈↓ αP␈ε∃3␈↓ β6␈ε∃61.05␈↓ ¬$␈ε∃44.05
␈β¬(␈↓ αP␈ε∃4␈↓ βG␈ε∃5.00␈↓ ¬$␈ε∃39.05
␈β¬c␈↓ ↓H␈∧¬c↓Hα
-
␈β¬e␈↓ ↓H␈∧¬e↓Hλα␈↓ s␈∧¬esλα
␈β¬l␈↓ ↓H␈∧¬l↓Hα
-
␈βε
␈↓ ↓H␈ε2Example
␈βε5␈↓ α␈ε"W␈α⎇rite␈αa␈α
Pascal␈αprogram␈αto␈α
read␈αfrom␈αa␈α
|le␈αthe␈αcoe}cien␈α␈ts␈αof␈α
a␈αpolyn␈α↓omial,␈αand
␈βεa␈↓ ↓H␈ε"a␈αpoin␈α␈t␈α
at␈αwhich␈α
to␈αev␈α}aluate␈α
it,␈α
and␈αprin␈α␈t␈α
out␈αthe␈α
result␈α
of␈αthe␈α
ev␈α}aluation.␈α⊃A␈α
line␈αin
␈βπ␈↓ ↓H␈ε"the␈α|le␈αlik␈α␈e
␈βπ7␈↓ ¬1␈ε"3.0␈α$2␈α$4.0␈α$5.0␈α$6.0
␈βπo␈↓ ¬∩␈ε%2
␈βπu␈↓ ↓H␈ε"designates␈αthe␈αpolyn␈α↓omial␈α4␈↓ ∧}␈ε(x␈↓ ¬*␈ε"+␈αλ5␈ε(x␈ε"␈αλ+␈αλ6␈αwith␈ε(␈αx␈ε"␈α
=␈α
3,␈αgiving␈αan␈αansw␈α␈er␈αof␈α57;␈αwhile
␈βλ>␈↓ ∧E␈ε"2.3␈α$4␈α$1.2␈ε6␈α,␈␈ε"␈αλ3.4␈α$4.5␈α$0.0␈α$6.7
␈β	↓␈↓ β∩␈ε%4␈↓ βq␈ε%3␈↓ ∧x␈ε%2
␈β	π␈↓ ↓H␈ε"calls␈αfor␈α1.2␈↓ α}␈ε(x␈↓ β#␈ε"-3.4␈↓ β]␈ε(x␈↓ ∧
␈ε"+␈αλ4.5␈↓ ∧d␈ε(x␈↓ ¬⊃␈ε"+␈αλ6.7␈α
where␈ε(␈αx␈ε"␈α
=␈α2.3␈α(about␈α22.7).␈α⊃The␈αsecond␈αn␈α␈um␈α␈ber
␈β	2␈↓ ↓H␈ε"in␈α∂each␈α∂speci|cation␈α∞is␈α∂the␈α∂degree␈α∂of␈α∂the␈α∂polyn␈α↓omial,␈α⊂and␈α∂it␈α∂is␈α∂follo␈α␈w␈α␈ed␈α∂by␈α∞(degree
␈β	↑␈↓ ↓H␈ε"+1)␈αcoe}cien␈α␈ts␈α
(including␈α
explicit␈α
zeroes,␈α
if␈α
an␈α␈y).␈α∩All␈α
of␈α
these␈αn␈α␈um␈α␈bers␈α
are␈α
in
␈β	`␈↓ )␈ε5REAL
␈β
	␈↓ ↓H␈ε"format,␈αexcept␈αfor␈αthe␈αdegree,␈α
which␈αis␈αan␈↓ πm␈ε".␈α
The␈αcomplete␈α|le␈αconsists␈αof␈αan
␈β
␈↓ εi␈ε5INTEGER
␈β
4␈↓ ↓H␈ε"in␈α␈teger␈α
telling␈αh␈α↓o␈α␈w␈α
man␈α␈y␈α
such␈α
lines␈α
there␈α
are,␈α
follo␈α␈w␈α␈ed␈α
by␈α
the␈α
lines␈α
themselv␈α␈es.␈α∩F␈α⎇or
␈β
←␈↓ ↓H␈ε"example:
␈β≠␈↓ ↓H␈ε∃40
␈βC␈↓ ↓H␈ε∃3.0␈↓ α.␈ε∃2␈↓ αr␈ε∃4.0␈↓ βi␈ε∃5.0␈↓ ∧O␈ε∃6.0
␈βk␈↓ ↓H␈ε∃2.3␈↓ α.␈ε∃4␈↓ αr␈ε∃1.2␈↓ βX␈ε∃-3.4␈↓ ∧O␈ε∃4.5␈↓ ¬5␈ε∃0.0␈↓ ε≠␈ε∃6.7
␈β⊂␈↓ ↓S␈ε#th␈α␈irt␈α␈y-eigh␈α}t␈↓ ββ␈ε#m␈α↓ore␈↓ βX␈ε#line␈α␈s
␈βM␈↓ α␈ε"T␈α⎇o␈α∪mak␈α␈e␈α∩the␈α∪program␈α∩as␈α∪v␈α␈ersatile␈α∩as␈α∪possible,␈α∀y␈α␈ou␈α∪sh␈α↓ould␈α∩use␈α∪the␈α∩follo␈α␈wing
␈βy␈↓ ↓H␈ε"approach␈α(based␈αon␈αHorner's␈αrule):␈αNote␈αthat
␈β
:␈↓ βo␈ε%3␈↓ ∧c␈ε%2
␈β
B␈↓ βA␈ε(A␈↓ β[␈ε(x␈↓ ∧λ␈ε"+␈↓ ∧4␈ε(B␈↓ ∧O␈ε(x␈↓ ∧|␈ε"+␈↓ ¬(␈ε(C␈↓ ¬E␈ε(x␈ε"␈αλ+␈ε(␈αλD␈ε"␈α
=␈α
(((␈ε(Ax␈ε")␈αλ+␈↓ πt␈ε(B␈↓ λ∂␈ε")␈ε(x␈ε"␈αλ+␈↓ λc␈ε(C␈↓ 	␈ε")␈ε(x␈ε"␈αλ+␈ε(␈αλD␈ε";
␈β∞
␈↓ ↓H␈ε"in␈αgeneral:
␈β∞w␈↓ α0␈ε+n␈↓ βi␈ε+n␈ε9␈␈ε%␈α␈1␈↓ εβ␈ε%2
␈β∞␈␈↓ ↓l␈ε(R␈↓ α≤␈ε(x␈↓ αL␈ε"+␈↓ αx␈ε(R␈↓ βU␈ε(x␈↓ ∧2␈ε"+␈↓ ∧↑␈ε6↓␈αε↓␈αε↓␈↓ ¬⊗␈ε"+␈↓ ¬B␈ε(R␈↓ ¬o␈ε(x␈↓ ε≤␈ε"+␈↓ εH␈ε(R␈↓ εt␈ε(x␈ε"␈αλ+␈↓ π<␈ε(R
␈β∂␈↓ αλ␈ε+n␈↓ β∀␈ε+n␈ε9␈␈ε%␈α␈1␈↓ ¬↑␈ε%2␈↓ εd␈ε%1␈↓ πX␈ε%0
␈β∂1␈↓ ∧A␈ε"=␈α
(␈↓ ∧{␈ε6↓␈αε↓␈αε↓␈↓ ¬+␈ε"(((␈↓ ¬O␈ε(R␈↓ ¬␈␈ε(x␈ε")␈αλ+␈↓ εS␈ε(R␈↓ π0␈ε")␈ε(x␈ε"␈αλ+␈↓ λ∧␈ε(R␈↓ λa␈ε")␈ε(x␈ε"␈αλ+␈↓ 	5␈ε6↓␈αε↓␈αε↓␈↓ 	m␈ε"+␈↓ 
→␈ε(R␈↓ 
F␈ε")␈ε(x␈ε"␈αλ+␈↓ ~␈ε(R␈↓ F␈ε".
␈β∂=␈↓ ¬k␈ε+n␈↓ εo␈ε+n␈ε9␈α␈␈␈ε%1␈↓ λ ␈ε+n␈ε9␈α␈␈␈ε%2␈↓ 
5␈ε%1␈↓ 6␈ε%0
␈β⊃∨

␈β↓H␈↓ ↓$␈∧↓H↓$α
u
␈β↓J␈↓ ↓$␈∧↓J↓$Hα␈↓ α→␈∧↓Jα→Hα␈↓ ↔␈∧↓J↔Hα
␈β↓V␈↓ εW␈ε>Readin␈α␈g
␈β↓\␈↓ ↓M␈ε"48
␈βα⊃␈↓ ↓$␈∧α⊃↓$α
u
␈βαO␈↓ ↓H␈ε"This␈α∞suggests␈α∞a␈α∂meth␈α↓od␈α∞of␈α∞ev␈α}aluating␈α∂the␈α∞polyn␈α↓omial␈α∞on␈α∂the␈α∞⎇y,␈α∂as␈α∞the␈α∞coe}cien␈α␈ts
␈βαz␈↓ ↓H␈ε"are␈α
being␈α
read␈α
in:␈α∞repeatedly␈α∞calculate␈α
a␈α
new␈α
result␈α
by␈α
taking␈α∞the␈α
old␈α
result,␈α
m␈α␈ulti-
␈ββ%␈↓ ↓H␈ε"plying␈α∞by␈ε(␈α
x␈ε"␈α∞and␈α∞adding␈α∞the␈α∞new␈α∞coe}cien␈α␈t,␈α∞This,␈α∞correctly␈α∞programmed,␈α∂w␈α␈orks␈α
for
␈ββP␈↓ ↓H␈ε"polyn␈α↓omials␈αof␈αan␈α␈y␈αdegree,␈αincluding␈αzero.
␈ββ|␈↓ α␈ε"The␈α
output␈αsh␈α↓ould␈α
include␈αa␈α
reasonable␈α
facsimile␈αof␈α
the␈α
input␈αpolyn␈α↓omial␈α
as␈α
w␈α␈ell
␈β∧'␈↓ ↓H␈ε"as␈αthe␈αresult.␈α⊂F␈α⎇or␈αinstance␈αthe␈αoutput␈αfor␈αthe␈αt␈α␈w␈α␈o␈αlines␈αabo␈α␈v␈α␈e␈αmigh␈α␈t␈αbe:
␈β∧b␈↓ βG␈ε7"␈↓ ∧q␈ε7"
␈β∧d␈↓ αP␈ε∃(␈↓ αr␈ε∃4.0␈↓ β6␈ε∃X␈↓ βW␈ε∃2␈↓ βy␈ε∃+␈↓ ∧≠␈ε∃5.␈α↓0␈↓ ∧`␈ε∃X␈↓ ¬↓␈ε∃1␈↓ ¬#␈ε∃+␈↓ ¬E␈ε∃6.0␈↓ ε	␈ε∃)␈↓ ε<␈ε∃AT␈↓ π␈ε∃X=30␈↓ πf␈ε∃IS␈↓ λ*␈ε∃56.9
␈β¬
␈↓ βG␈ε7"␈↓ ¬α␈ε7"␈↓ ε+␈ε7"␈↓ πU␈ε7"
␈β¬␈↓ αP␈ε∃(␈↓ αr␈ε∃1.2␈↓ β6␈ε∃X␈↓ βW␈ε∃4␈↓ βy␈ε∃+␈↓ ∧≠␈ε∃-3␈α↓.4␈↓ ∧q␈ε∃X␈↓ ¬∩␈ε∃3␈↓ ¬4␈ε∃+␈↓ ¬V␈ε∃4.5␈↓ ε~␈ε∃X␈↓ ε<␈ε∃2␈↓ ε↑␈ε∃+␈↓ π␈ε∃0.0␈↓ πD␈ε∃X␈↓ πf␈ε∃1␈↓ λλ␈ε∃+␈↓ λ*␈ε∃6.7␈↓ λn␈ε∃)␈↓ 	!␈ε∃AT␈↓ 	e␈ε∃X=2.3␈↓ 
\␈ε∃IS␈↓  ␈ε∃22.7
␈β¬I␈↓ ↓H␈ε"T␈α⎇o␈α∞prin␈α␈t␈α∞a␈↓ βT␈ε"n␈α␈um␈α␈ber,␈↓ ∧v␈ε",␈α∞neatly␈α∂(i.e.␈α⊗with␈α↓out␈α∂an␈α∞exponen␈α␈t,␈α∂and␈α∞with␈α∞a␈α∞speci|ed
␈β¬K␈↓ αz␈ε5REAL␈↓ ∧c␈ε5R
␈β¬t␈↓ ↓H␈ε"n␈α␈um␈α␈ber␈αof␈αdigits␈αto␈αthe␈αrigh␈α␈t␈αof␈αthe␈αdecimal␈αpoin␈α␈t),␈αy␈α␈ou␈αmigh␈α␈t␈αtry:
␈βεL␈↓ αX␈ε5WR␈α␈ITE(R:TRUN␈α␈C(LOG(ABS(␈α␈R)+1))+3+D␈α␈P:DP)
␈βπ!␈↓ ↓H␈ε"where␈↓ αa␈ε"is␈αthe␈αn␈α␈um␈α␈ber␈αof␈αdecimal␈αplaces␈αy␈α␈ou␈αw␈α␈an␈α␈t␈αdispla␈α␈y␈α␈ed␈α(one␈αsh␈α↓ould␈αbe␈αen␈α↓ough
␈βπ#␈↓ α/␈ε5DP
␈βπL␈↓ ↓H␈ε"for␈αthis␈αassignmen␈α␈t).
␈βπw␈↓ α␈ε".
␈βλ"␈↓ α␈ε"That␈α
sa␈α␈ys␈α\write␈αout␈↓ ¬↓␈ε"with␈α
just␈αen␈α↓ough␈α
ro␈α↓om␈αfor␈α
the␈αsign,␈α
all␈αthe␈α
digits␈αto␈αthe
␈βλ$␈↓ ∧b␈ε5R
␈βλN␈↓ ↓H␈ε"le$␈α
of␈α∞the␈α
decimal␈α∞poin␈α␈t,␈α∞the␈α
decimal␈α∞poin␈α␈t␈α∞itself,␈α∞and␈↓ λf␈ε"places␈α
to␈α∞the␈α
righ␈α␈t␈α∞of␈α
the
␈βλP␈↓ λ2␈ε5DP
␈βλy␈↓ ↓H␈ε"decimal␈α
poin␈α␈t."␈α∩Y␈α⎇ou␈α
ma␈α␈y␈α
|nd␈α
y␈α␈our␈α
answ␈α␈ers␈αo{␈α
by␈α
one␈α
in␈α
the␈α
least␈α
signi|can␈α␈t␈αplace,
␈β	$␈↓ ↓H␈ε"due␈α⊂to␈α⊂rounding␈α⊂errors.␈α≤Also,␈α⊃the␈α⊃\␈ε6"␈ε""␈α⊂character␈α⊂ma␈α␈y␈α⊂lo␈α↓ok␈α⊂m␈α↓ore␈α⊂lik␈α␈e␈α⊂\␈↓ 
V␈ε""␈α⊂on␈α⊂y␈α␈our
␈β	&␈↓ 
C␈ε5∂
␈β	O␈↓ ↓H␈ε"terminal␈αand/or␈αprin␈α␈tout.
␈β⊃_

␈β↓H␈↓ ↓$␈∧↓H↓$α
u
␈β↓J␈↓ ↓$␈∧↓J↓$Hα␈↓ "␈∧↓J"Hα␈↓ ↔␈∧↓J↔Hα
␈β↓V␈↓ ¬\␈ε>Readin␈α␈g
␈β↓\␈↓ K␈ε"49
␈βα⊃␈↓ ↓$␈∧α⊃↓$α
u
␈βαP␈↓ ↓H␈ε∃(*␈↓ ↓{␈ε∃EVALUATION␈↓ β6␈ε∃OF␈↓ βi␈ε∃POLYNOMIALS␈↓ ¬5␈ε∃USING␈↓ ε≠␈ε∃HORNER'S␈↓ π4␈ε∃RULE.␈↓ λ~␈ε∃*)
␈βαx␈↓ ↓H␈ε∃(*␈↓ α␈ε∃INPUT␈↓ αr␈ε∃:␈↓ β∀␈ε∃FIRST␈↓ βz␈ε∃LINE␈↓ ∧O␈ε∃:␈↓ ∧q␈ε∃NUMBER␈↓ ¬h␈ε∃OF␈↓ ε≠␈ε∃POLYNOMIALS␈↓ πg␈ε∃TO␈↓ λ~␈ε∃BE␈↓ λM␈ε∃EVALUATED␈↓ 	w␈ε∃*)
␈ββ∨␈↓ ↓H␈ε∃(*␈↓ β∀␈ε∃NEXT␈↓ βi␈ε∃LINES␈↓ ∧`␈ε∃:␈↓ ¬∪␈ε∃X␈↓ ¬5␈ε∃DEGREE␈↓ ε,␈ε∃COEF␈↓ π↓␈ε∃COEF␈↓ πV␈ε∃COEF␈↓ λ+␈ε∃...␈↓ λo␈ε∃COEF␈↓ 	D␈ε∃*)
␈ββG␈↓ ↓H␈ε∃(*␈↓ ¬5␈ε∃X␈↓ ε=␈ε∃:␈↓ εp␈ε∃POINT␈↓ πV␈ε∃OF␈↓ λ	␈ε∃EVALUATION␈↓ 	D␈ε∃*)
␈ββo␈↓ ↓H␈ε∃(*␈↓ ¬5␈ε∃DEGREE␈↓ ε=␈ε∃:␈↓ εp␈ε∃DEGREE␈↓ πg␈ε∃OF␈↓ λ~␈ε∃POLYNOMIAL*)
␈β∧⊗␈↓ ↓H␈ε∃(*␈↓ ¬5␈ε∃COEF␈↓ ε=␈ε∃:␈↓ εp␈ε∃POLYNOMIAL␈↓ λ+␈ε∃COEFFICIENTS␈↓ 
λ␈ε∃FROM␈↓ 
]␈ε∃*)
␈β∧>␈↓ ↓H␈ε∃(*␈↓ εp␈ε∃HIGH␈↓ πE␈ε∃ORDER␈↓ λ+␈ε∃TO␈↓ λ↑␈ε∃LOW␈↓ 	"␈ε∃ORDER␈↓ 
]␈ε∃*)
␈β∧e␈↓ ↓H␈ε∃(*␈↓ α␈ε∃OUTPUT␈↓ β∀␈ε∃:␈↓ βG␈ε∃FACSIMILE␈↓ ∧q␈ε∃OF␈↓ ¬$␈ε∃INPUT␈↓ ε
␈ε∃,␈↓ ε,␈ε∃EVALUATED␈↓ πV␈ε∃POLYNOMIAL␈↓ 	⊃␈ε∃*)
␈β¬5␈↓ ↓H␈ε∃PROGRAM␈↓ αP␈ε∃POLYEVAL␈↓ βi␈ε∃(␈↓ ∧␈ε∃INPUT*␈↓ ¬α␈ε∃,␈↓ ¬$␈ε∃OUTPUT␈↓ ε≠␈ε∃)␈↓ ε=␈ε∃;
␈β¬\␈↓ ↓H␈ε∃CONST␈↓ αP␈ε∃DP␈↓ βX␈ε∃=␈↓ βz␈ε∃1␈↓ ∧≤␈ε∃;␈↓ ¬F␈ε∃(*␈↓ ¬y␈ε∃NUMBER␈↓ εp␈ε∃OF␈↓ π#␈ε∃DECIMAL␈↓ λ+␈ε∃PLACES␈↓ 	"␈ε∃IN␈↓ 	U␈ε∃OUTPUT␈↓ 
L␈ε∃*)
␈βε∧␈↓ ↓H␈ε∃VAR␈↓ αP␈ε∃NUMBER,␈↓ ¬F␈ε∃(*␈↓ ¬y␈ε∃NUMBER␈↓ εp␈ε∃OF␈↓ π#␈ε∃POLYNOMIALS␈↓ λo␈ε∃*)
␈βε+␈↓ αP␈ε∃DEGREE,␈↓ ¬F␈ε∃(*␈↓ ¬y␈ε∃DEGREE␈↓ εp␈ε∃OF␈↓ π#␈ε∃POLYNOMIAL␈↓ λo␈ε∃*)
␈βεS␈↓ αP␈ε∃I,␈↓ ββ␈ε∃J␈↓ βX␈ε∃:␈↓ ∧␈ε∃INTEGER␈↓ ¬∪␈ε∃;␈↓ ¬F␈ε∃(*␈↓ ¬y␈ε∃ITERATION␈↓ π#␈ε∃VARIABLES␈↓ λo␈ε∃*)
␈βε{␈↓ αP␈ε∃X,␈↓ ¬F␈ε∃(*␈↓ ¬y␈ε∃EVALUATION␈↓ π4␈ε∃POINT␈↓ λo␈ε∃*)
␈βπ"␈↓ αP␈ε∃COEF,␈↓ ¬F␈ε∃(*␈↓ ¬y␈ε∃POLYNOMIAL␈↓ π4␈ε∃COEFFICIENT*)
␈βπJ␈↓ αP␈ε∃VALUE␈↓ βX␈ε∃:␈↓ ∧␈ε∃REAL␈↓ ∧`␈ε∃;␈↓ ¬F␈ε∃(*␈↓ ¬y␈ε∃(RUNNING)␈↓ π#␈ε∃VALUE␈↓ λ	␈ε∃OF␈↓ λ<␈ε∃POLYNOMIAL␈↓ 	w␈ε∃IN␈↓ 
*␈ε∃X␈↓ 
L␈ε∃*)
␈βλ→␈↓ ↓H␈ε∃BEGIN
␈βλA␈↓ ↓H␈ε∃(*␈↓ ↓{␈ε∃READ␈↓ αP␈ε∃NUMBER␈↓ βG␈ε∃OF␈↓ βz␈ε∃LINES␈↓ ∧`␈ε∃*)
␈βλh␈↓ ↓H␈ε∃READ␈↓ α≥␈ε∃(␈↓ α?␈ε∃NUMBER␈↓ β6␈ε∃)␈↓ βX␈ε∃;
␈β	⊂␈↓ ↓H␈ε∃(*␈↓ ↓{␈ε∃EVALUATE␈↓ β∀␈ε∃NUMBER␈↓ ∧␈ε∃POLYNOMIALS␈↓ ¬W␈ε∃*)
␈β	7␈↓ ↓H␈ε∃FOR␈↓ α␈ε∃I␈↓ α.␈ε∃:=␈↓ αa␈ε∃1␈↓ ββ␈ε∃TO␈↓ β6␈ε∃NUMBER␈↓ ∧-␈ε∃DO
␈β	←␈↓ α␈ε∃BEGIN␈↓ β6␈ε∃(*␈↓ βi␈ε∃INITIAL␈↓ ∧q␈ε∃INPUT-OUTPUT␈↓ εN␈ε∃AND␈↓ π∩␈ε∃INITIALIZATION␈↓ 	⊃␈ε∃OF␈↓ 	D␈ε∃VALUE␈↓ 
*␈ε∃*)
␈β
π␈↓ α␈ε∃READ␈↓ αa␈ε∃(␈↓ ββ␈ε∃X,␈↓ β6␈ε∃DEGREE␈↓ ∧-␈ε∃)␈↓ ∧O␈ε∃;
␈β
.␈↓ α␈ε∃WRITE␈↓ αr␈ε∃(␈↓ β∀␈ε∃'(␈↓ βG␈ε∃'␈↓ βi␈ε∃)␈↓ ∧␈ε∃;
␈β
V␈↓ α␈ε∃VALUE␈↓ αr␈ε∃:=␈↓ β%␈ε∃0.0␈↓ βi␈ε∃;
␈β
⎇␈↓ α␈ε∃(*␈↓ α?␈ε∃EVALUATE␈↓ βX␈ε∃POLYNOMIAL␈↓ ¬∪␈ε∃*)
␈β%␈↓ α␈ε∃FOR␈↓ αP␈ε∃J␈↓ αr␈ε∃:=␈↓ β%␈ε∃DEGREE␈↓ ∧≤␈ε∃DOWNTO␈↓ ¬∪␈ε∃0␈↓ ¬5␈ε∃DO
␈βM␈↓ αP␈ε∃BEGIN␈↓ β6␈ε∃(*␈↓ βi␈ε∃READ/WRITE␈↓ ¬$␈ε∃ONE␈↓ ¬h␈ε∃COEFFICIENT,␈↓ πE␈ε∃AND␈↓ λ	␈ε∃APPLY␈↓ λo␈ε∃ONE␈↓ 	3␈ε∃STEP␈↓ 
λ␈ε∃OF
␈βt␈↓ βi␈ε∃OF␈↓ ∧≤␈ε∃HORNER'S␈↓ ¬5␈ε∃RULE␈↓ ε
␈ε∃*)
␈β≤␈↓ αP␈ε∃READ␈↓ β%␈ε∃(␈↓ βG␈ε∃COEF␈↓ ∧≤␈ε∃)␈↓ ∧>␈ε∃;
␈βC␈↓ αP␈ε∃WRITE␈↓ β6␈ε∃(␈↓ βX␈ε∃COEF:TRUNC(LOG(ABS(COEF)+1))+3+DP:DP␈↓ λM␈ε∃)␈↓ λo␈ε∃;
␈βk␈↓ αP␈ε∃IF␈↓ ββ␈ε∃J␈↓ β%␈ε∃<>␈↓ βX␈ε∃0␈↓ βz␈ε∃THEN␈↓ ∧O␈ε∃WRITE␈↓ ¬5␈ε∃(␈↓ ¬W␈ε∃'␈↓ ¬y␈ε∃X∂',␈↓ εN␈ε∃J:1,␈↓ π#␈ε∃'␈↓ πE␈ε∃+␈↓ πg␈ε∃'␈↓ λ	␈ε∃)␈↓ λ+␈ε∃;
␈β
∪␈↓ αP␈ε∃VALUE␈↓ βG␈ε∃:=␈↓ βz␈ε∃VALUE*X␈↓ ¬α␈ε∃+␈↓ ¬$␈ε∃COEF
␈β
:␈↓ αP␈ε∃END␈↓ β∀␈ε∃;␈↓ β6␈ε∃(*␈↓ βi␈ε∃J␈↓ ∧␈ε∃ITERATION␈↓ ¬5␈ε∃*)
␈β
b␈↓ α␈ε∃(*FINAL␈↓ β∀␈ε∃OUTPUT␈↓ ∧␈ε∃*)
␈β∞	␈↓ α␈ε∃WRITELN␈↓ β∀␈ε∃(␈↓ β6␈ε∃'␈↓ βX␈ε∃)␈↓ ∧␈ε∃AT␈↓ ∧>␈ε∃X␈↓ ∧`␈ε∃=␈↓ ¬α␈ε∃'␈↓ ¬$␈ε∃,␈↓ ¬F␈ε∃X:TRUNC(LOG(ABS(X)+1))+3+DP:DP,
␈β∞1␈↓ β6␈ε∃'␈↓ βX␈ε∃IS␈↓ ∧␈ε∃'␈↓ ∧-␈ε∃,␈↓ ∧O␈ε∃VALUE:TRUNC(LOG(ABS(VALUE)+1))+3+DP:DP␈↓ 	f␈ε∃)
␈β∞Y␈↓ α␈ε∃END␈↓ αP␈ε∃(*␈↓ ββ␈ε∃I␈↓ β%␈ε∃ITERATION␈↓ ∧O␈ε∃*)
␈β∂␈↓ ↓H␈ε∃END.␈↓ α≥␈ε∃(*␈↓ αP␈ε∃POLYEVAL␈↓ βi␈ε∃*)
␈β⊃_

␈β↓H␈↓ ↓$␈∧↓H↓$α
u
␈β↓J␈↓ ↓$␈∧↓J↓$Hα␈↓ α→␈∧↓Jα→Hα␈↓ ↔␈∧↓J↔Hα
␈β↓V␈↓ εW␈ε>Readin␈α␈g
␈β↓\␈↓ ↓M␈ε"50
␈βα⊃␈↓ ↓$␈∧α⊃↓$α
u
␈βαT␈↓ ↓H␈∧αT↓Hα
-
␈βαU␈↓ ↓H␈∧αU↓Hλα␈↓ s␈∧αUsλα
␈βα\␈↓ ↓H␈∧α\↓Hα
-
␈βαk␈↓ ↓H␈ε∃(␈↓ ↓j␈ε∃4.0␈↓ α.␈ε∃X∂2␈↓ αr␈ε∃+␈↓ β%␈ε∃5.0␈↓ βi␈ε∃X∂1␈↓ ∧-␈ε∃+␈↓ ∧`␈ε∃6.0␈↓ ¬$␈ε∃)␈↓ ¬F␈ε∃AT␈↓ ¬y␈ε∃X␈↓ ε≠␈ε∃=␈↓ εN␈ε∃3.0␈↓ π∩␈ε∃IS␈↓ πV␈ε∃56.9
␈ββ∪␈↓ ↓H␈ε∃(␈↓ ↓j␈ε∃1.2␈↓ α.␈ε∃X∂4␈↓ αr␈ε∃+␈↓ β∀␈ε∃-3.4␈↓ βi␈ε∃X∂3␈↓ ∧-␈ε∃+␈↓ ∧O␈ε∃4.5␈↓ ¬∪␈ε∃X∂2␈↓ ¬W␈ε∃+␈↓ ¬y␈ε∃0.0␈↓ ε=␈ε∃X∂1␈↓ π↓␈ε∃+␈↓ π#␈ε∃6.6␈↓ πg␈ε∃)␈↓ λ	␈ε∃AT␈↓ λ<␈ε∃X␈↓ λ↑␈ε∃=␈↓ 	␈ε∃2.3␈↓ 	D␈ε∃IS␈↓ 	w␈ε∃22.7
␈ββ;␈↓ ↓H␈ε∃(␈↓ ↓j␈ε∃1.0␈↓ α.␈ε∃X∂1␈↓ αr␈ε∃+␈↓ β∀␈ε∃0.0␈↓ βX␈ε∃)␈↓ βz␈ε∃AT␈↓ ∧-␈ε∃X␈↓ ∧O␈ε∃=␈↓ ∧q␈ε∃0.0␈↓ ¬5␈ε∃IS␈↓ ¬h␈ε∃0.0
␈ββb␈↓ ↓H␈ε∃(␈↓ ↓j␈ε∃0.0␈↓ α.␈ε∃X∂2␈↓ αr␈ε∃+␈↓ β∀␈ε∃0.0␈↓ βX␈ε∃X∂1␈↓ ∧≤␈ε∃+␈↓ ∧>␈ε∃0.1␈↓ ¬α␈ε∃)␈↓ ¬$␈ε∃AT␈↓ ¬W␈ε∃X␈↓ ¬y␈ε∃=␈↓ ε≠␈ε∃999.0␈↓ π↓␈ε∃IS␈↓ π4␈ε∃1008.2
␈β∧
␈↓ ↓H␈ε∃(␈↓ ↓j␈ε∃1.0␈↓ α.␈ε∃X∂5␈↓ αr␈ε∃+␈↓ β∀␈ε∃-1.0␈↓ βi␈ε∃X∂4␈↓ ∧-␈ε∃+␈↓ ∧O␈ε∃1.0␈↓ ¬∪␈ε∃X∂3␈↓ ¬W␈ε∃+␈↓ ¬y␈ε∃-1.0␈↓ εN␈ε∃X∂2␈↓ π∩␈ε∃+␈↓ π4␈ε∃1.0␈↓ πx␈ε∃X∂1␈↓ λ<␈ε∃+␈↓ λ↑␈ε∃-1.0␈↓ 	3␈ε∃)␈↓ 	U␈ε∃AT␈↓ 
λ␈ε∃X␈↓ 
*␈ε∃=␈↓ 
L␈ε∃0.0
␈β∧1␈↓ α?␈ε∃IS␈↓ αr␈ε∃-0.9
␈β∧Y␈↓ ↓H␈ε∃(␈↓ ↓j␈ε∃1.0␈↓ α.␈ε∃X∂5␈↓ αr␈ε∃+␈↓ β∀␈ε∃-1.0␈↓ βi␈ε∃X∂4␈↓ ∧-␈ε∃+␈↓ ∧O␈ε∃1.0␈↓ ¬∪␈ε∃X∂3␈↓ ¬W␈ε∃+␈↓ ¬y␈ε∃-1.0␈↓ εN␈ε∃X∂2␈↓ π∩␈ε∃+␈↓ π4␈ε∃1.0␈↓ πx␈ε∃X∂1␈↓ λ<␈ε∃+␈↓ λ↑␈ε∃-1.0␈↓ 	3␈ε∃)␈↓ 	U␈ε∃AT␈↓ 
λ␈ε∃X␈↓ 
*␈ε∃=␈↓ 
L␈ε∃200.0
␈β¬↓␈↓ α?␈ε∃IS␈↓ ββ␈ε∃318407961726.1
␈β¬(␈↓ ↓H␈ε∃(␈↓ ↓j␈ε∃1.0␈↓ α.␈ε∃X∂5␈↓ αr␈ε∃+␈↓ β∀␈ε∃-1.0␈↓ βi␈ε∃X∂4␈↓ ∧-␈ε∃+␈↓ ∧O␈ε∃1.0␈↓ ¬∪␈ε∃X∂3␈↓ ¬W␈ε∃+␈↓ ¬y␈ε∃-1.0␈↓ εN␈ε∃X∂2␈↓ π∩␈ε∃+␈↓ π4␈ε∃1.0␈↓ πx␈ε∃X∂1␈↓ λ<␈ε∃+␈↓ λ↑␈ε∃-1.0␈↓ 	3␈ε∃)␈↓ 	U␈ε∃AT␈↓ 
λ␈ε∃X␈↓ 
*␈ε∃=␈↓ 
L␈ε∃2.0
␈β¬P␈↓ α?␈ε∃IS␈↓ ββ␈ε∃20.9
␈β¬w␈↓ ↓H␈ε∃(␈↓ ↓j␈ε∃-324.2␈↓ αa␈ε∃X∂2␈↓ β%␈ε∃+␈↓ βG␈ε∃5123.8␈↓ ∧>␈ε∃X∂1␈↓ ¬α␈ε∃+␈↓ ¬$␈ε∃0.0␈↓ ¬h␈ε∃)␈↓ ε
␈ε∃AT␈↓ ε=␈ε∃X␈↓ ε←␈ε∃=␈↓ π↓␈ε∃1234.5␈↓ πx␈ε∃IS␈↓ λ+␈ε∃-487799942.4
␈βε∨␈↓ ↓H␈ε∃(␈↓ ↓j␈ε∃3.3␈↓ α.␈ε∃X∂2␈↓ αr␈ε∃+␈↓ β∀␈ε∃6.6␈↓ βX␈ε∃X∂1␈↓ ∧≤␈ε∃+␈↓ ∧>␈ε∃10.0␈↓ ¬∪␈ε∃)␈↓ ¬5␈ε∃AT␈↓ ¬h␈ε∃X␈↓ ε
␈ε∃=␈↓ ε,␈ε∃0.3␈↓ εp␈ε∃IS␈↓ π#␈ε∃12.5
␈βεG␈↓ ↓H␈ε∃(␈↓ ↓j␈ε∃-222.9␈↓ αa␈ε∃)␈↓ ββ␈ε∃AT␈↓ β6␈ε∃X␈↓ βX␈ε∃=␈↓ βz␈ε∃284.7␈↓ ∧`␈ε∃IS␈↓ ¬∪␈ε∃-222.9
␈βεn␈↓ ↓H␈ε∃(␈↓ ↓j␈ε∃-222.9␈↓ αa␈ε∃X∂1␈↓ β%␈ε∃+␈↓ βG␈ε∃-223.0␈↓ ∧>␈ε∃)␈↓ ∧`␈ε∃AT␈↓ ¬∪␈ε∃X␈↓ ¬5␈ε∃=␈↓ ¬W␈ε∃284.7␈↓ ε=␈ε∃IS␈↓ εp␈ε∃-63824.3
␈βπ⊗␈↓ ↓H␈ε∃(␈↓ ↓j␈ε∃-222.9␈↓ αa␈ε∃X∂2␈↓ β%␈ε∃+␈↓ βG␈ε∃334.0␈↓ ∧-␈ε∃X∂1␈↓ ∧q␈ε∃+␈↓ ¬∪␈ε∃-444.9␈↓ ε
␈ε∃)␈↓ ε,␈ε∃AT␈↓ ε←␈ε∃X␈↓ π↓␈ε∃=␈↓ π#␈ε∃284.7␈↓ λ	␈ε∃IS␈↓ λ<␈ε∃-17981683.3
␈βπQ␈↓ ↓H␈∧πQ↓Hα
-
␈βπS␈↓ ↓H␈∧πS↓Hλα␈↓ s␈∧πSsλα
␈βπZ␈↓ ↓H␈∧πZ↓Hα
-
␈βπ}␈↓ ↓H␈ε2Exercise
␈βλ.␈↓ α␈ε$W␈α⎇ri␈α␈te␈αa␈αprogra␈α↓m␈αwhi␈α␈ch␈αpri␈α␈n␈α␈ts␈αa␈αre␈α␈ctangle␈α
o␈α↓f␈αaste␈α␈risks␈α
a␈α↓$e␈α␈r␈αre␈α␈a␈α↓di␈α␈ng␈αits␈α
hei␈α␈g␈α↓h␈α␈t␈αand␈αwi␈α␈dth.␈α∂Use
␈βλY␈↓ ↓H␈ε$prompting␈α
a␈α↓nd␈α
e␈α␈ch␈α↓oes.
␈β	∃␈↓ ↓H␈ε2Exercise
␈β	E␈↓ α␈ε$W␈α⎇ri␈α␈te␈αa␈α
pro␈α↓gram␈αto␈αadd␈αa␈αse␈α␈rie␈α␈s␈αof␈αn␈α␈umbe␈α␈rs␈αfrom␈αthe␈α
terminal,␈α
pri␈α␈n␈α␈ting␈αt␈α␈he␈αc␈α␈umul␈α␈a␈α↓ti␈α␈v␈α␈e␈αsums.
␈β	p␈↓ ↓H␈ε$The␈αse␈α␈t␈αo␈α↓f␈αn␈α␈umbers␈αto␈αbe␈αa␈α↓dde␈α␈d␈α
sho␈α↓ul␈α␈d␈α
be␈αpre␈α␈ce␈α␈ded␈αby␈α
a␈αnum␈α␈ber␈αgiving␈αthe␈αsiz␈α␈e␈αof␈α
the␈αse␈α␈t.␈α∀Use
␈β
≤␈↓ ↓H␈ε$prompting␈α
a␈α↓nd␈α
e␈α␈ch␈α↓oes.
␈β⊃_

␈β↓H␈↓ ↓$␈∧↓H↓$α
u
␈β↓J␈↓ ↓$␈∧↓J↓$Hα␈↓ "␈∧↓J"Hα␈↓ ↔␈∧↓J↔Hα
␈β↓V␈↓ ∧z␈ε>L␈α␈OTS␈α∞P␈α↓ascal␈α∞Note
␈β↓\␈↓ K␈ε"51
␈βα⊃␈↓ ↓$␈∧α⊃↓$α
u
␈βαY␈↓ ↓H␈ε>L␈α␈O␈α␈TS␈α∞P␈α↓asca␈α↓l␈α∞N␈α␈ote.
␈ββ∨␈↓ α␈ε"A␈α⊂Pascal␈α⊂program,␈α⊃by␈α⊂its␈↓ ε$␈ε"and␈↓ λα␈ε"commands,␈α⊃sends␈α⊂n␈α␈um␈α␈bers␈α∂and
␈ββ!␈↓ ¬5␈ε5WRITE␈↓ εn␈ε5WR␈α␈ITELN
␈ββJ␈↓ ↓H␈ε"characters␈α⊂to␈α⊂|les␈α⊃in␈α⊂a␈α⊃form␈α⊂suitable␈α⊃for␈α⊂prin␈α␈ting.␈α≥If␈α⊃n␈α↓o␈α⊂explicit␈α⊃names␈α⊂are␈α⊂giv␈α␈en
␈ββv␈↓ ↓H␈ε"to␈α∞these␈α∞|les,␈α∞it␈α∞is␈α∞assumed␈α∞that␈α∂all␈α∞output␈α∞goes␈α∞to␈α∞one␈α∞|le␈α∞which␈α∞is␈α∞called␈↓ j␈ε".
␈ββx␈↓ 
y␈ε5OUTPUT
␈β∧!␈↓ ↓H␈ε"This␈αhas␈αa␈αdisadv␈α}an␈α␈tage.␈α⊂If␈αm␈α␈y␈αlast␈αprogram␈αle$␈αits␈αresults␈αin␈αthe␈α|le␈αcalled␈↓ j␈ε",
␈β∧#␈↓ 
y␈ε5OUTPUT
␈β∧L␈↓ ↓H␈ε"and␈αm␈α␈y␈αcurren␈α␈t␈αprogram␈αwrites␈αits␈αresults␈αthere,␈αI␈αwill␈αthereby␈αlose␈αthe␈αolder␈αresults.
␈β∧w␈↓ ↓H␈ε"F␈α⎇urtherm␈α↓ore,␈α⊂naming␈α⊂the␈α⊂|le␈↓ ε-␈ε"giv␈α␈es␈α∂n␈α↓o␈α⊂hin␈α␈t␈α⊂of␈α⊂what␈α∂the␈α⊂results␈α⊂are␈α∂about.
␈β∧y␈↓ ¬+␈ε5OUTPUT
␈β¬"␈↓ ↓H␈ε"And␈α
if␈α
I␈α
run␈α
the␈α
same␈α
program␈α
again␈α
with␈α
di{eren␈α␈t␈αinput,␈α
the␈α
new␈α
results␈α
replace␈α
and
␈β¬N␈↓ ↓H␈ε"destro␈α␈y␈αthe␈αold␈αones.
␈β¬|␈↓ α␈ε"It␈α
is␈α
desirable␈α
to␈α
be␈α
able␈α
to␈α
name,␈α
each␈α
time␈α
the␈α
program␈αis␈α
run,␈α∞the␈α
L␈α␈OTS␈α|le
␈βε'␈↓ ↓H␈ε"which␈α
receiv␈α␈es␈α
the␈αresults␈α
of␈α
y␈α␈our␈αprogram.␈α∂In␈αits␈α
simplest␈α
form,␈αto␈α
do␈αthis␈α
one␈α
writes
␈βεS␈↓ ↓H␈ε"the␈α|rst␈αline␈αof␈αthe␈αprogram␈αin␈αthe␈αform
␈βπa␈↓ βo␈ε6I
␈βπc␈↓ αX␈ε5PR␈α␈OGRAM␈↓ ∧π␈ε5(OUTP␈α␈UT);
␈βλE␈↓ ↓H␈ε"where␈↓ α/␈ε6I␈↓ αR␈ε"is␈αthe␈α
name␈αof␈αthe␈αprogram.␈α⊂When␈αthe␈αprogram␈αis␈αexecuted,␈αit␈αwill␈αbegin␈α
by
␈βλp␈↓ ↓H␈ε"asking␈αthe␈αuser␈αat␈αthe␈αterminal␈αto␈αpro␈α␈vide␈αthe␈α|lename␈α(in␈α
a␈αL␈α␈OTS␈αdirectory)␈αfor␈αthe
␈β	≤␈↓ ↓H␈ε"output␈α|le.
␈β	J␈↓ α␈ε"A␈α∞Pascal␈α∞program␈α∞ma␈α␈y␈α∞write␈α∞information␈α∞in␈α∂sev␈α␈eral␈α∞di{eren␈α␈t␈α∞|les,␈α∞each␈α∞time␈α∞it
␈β	u␈↓ ↓H␈ε"is␈α
run.␈α∃Each␈α∞such␈α
|le␈α∞generally␈α∞has␈α
t␈α␈w␈α␈o␈α∞names:␈α∂in␈α∞Pascal␈α
that␈α∞name␈α∞by␈α
which␈α∞it␈α
is
␈β
!␈↓ ↓H␈ε"kn␈α↓o␈α␈wn␈α
to␈α∞the␈α
program,␈α∞a␈α∞name␈α
which␈α∞is␈α∞built␈α
in␈α␈to␈α∞the␈α
program;␈α∂and␈α
that␈α∞name␈α
by
␈β
L␈↓ ↓H␈ε"which␈αit␈αis␈αkn␈α↓o␈α␈wn␈αto␈αTOPS-20,␈αa␈αname␈αpro␈α␈vided␈αwhen␈αthe␈αprogram␈αis␈αexecuted.␈α⊂W␈α⎇e
␈β
w␈↓ ↓H␈ε"shall␈α	call␈αλthese␈α	names␈α	the␈α	Pascal␈α	name␈α	and␈α	the␈αλdirectory␈α	name␈α	of␈α	the␈α	|le,␈α	respectiv␈α␈ely.
␈β"␈↓ ↓H␈ε"Most␈αPascal␈αnames␈αappear␈αexplicit␈α␈y␈αin␈αthe␈α|rst␈αline␈αof␈αthe␈αprogram,␈αin␈αthe␈αform
␈β1␈↓ βo␈ε6I␈↓ ∧∩␈ε"(␈↓ ∧≡␈ε6I␈↓ ∧@␈ε",␈↓ ∧P␈ε6I␈↓ ∧s␈ε",␈↓ ¬β␈ε".␈αε.␈αε.␈↓ ¬3␈ε",␈↓ ¬C␈ε6I␈↓ ¬i␈ε")
␈β3␈↓ αX␈ε5PR␈α␈OGRAM␈↓ ¬u␈ε5;
␈β>␈↓ ∧↓␈ε%0␈↓ ∧0␈ε%1␈↓ ∧b␈ε%2␈↓ ¬U␈ε+n
␈β
∃␈↓ ↓H␈ε"where␈↓ α0␈ε6I␈↓ α↑␈ε"is␈αthe␈αname␈α
of␈αthe␈αprogram,␈αand␈↓ εi␈ε6I␈↓ π␈ε",␈↓ π≠␈ε6I␈↓ π>␈ε",␈↓ πN␈ε".␈αε.␈αε.␈↓ π}␈ε",␈↓ λ∞␈ε6I␈↓ λ@␈ε"are␈αthe␈αPascal␈αnames␈αof␈αthe
␈β
!␈↓ αB␈ε%0␈↓ ε{␈ε%1␈↓ π-␈ε%2␈↓ λ ␈ε+n
␈β
@␈↓ ↓H␈ε"|les␈αit␈αuses.␈α⊂They␈αalso␈αappear␈αexplicitly␈αin␈↓ πZ␈ε"and␈↓ 	0␈ε"commands;
␈β
B␈↓ εp␈ε5WR␈α␈ITE␈↓ λ ␈ε5WRITELN
␈β∞O␈↓ βI␈ε6I␈↓ βa␈ε",␈↓ βq␈ε6E
␈β∞Q␈↓ αX␈ε5WR␈α␈ITE(␈↓ ∧
␈ε5)
␈β∂3␈↓ ↓H␈ε"writes␈αthe␈αv␈α}alue␈αof␈αexpression␈↓ ¬%␈ε6E␈↓ ¬J␈ε"to␈αthe␈α|le␈αwith␈αPascal␈αname␈↓ 	⊂␈ε6I␈↓ 	(␈ε".
␈β⊃∨

␈β↓H␈↓ ↓$␈∧↓H↓$α
u
␈β↓J␈↓ ↓$␈∧↓J↓$Hα␈↓ α→␈∧↓Jα→Hα␈↓ ↔␈∧↓J↔Hα
␈β↓V␈↓ ¬u␈ε>L␈α␈OTS␈α∞P␈α↓ascal␈α∞Note
␈β↓\␈↓ ↓M␈ε"52
␈βα⊃␈↓ ↓$␈∧α⊃↓$α
u
␈βαT␈↓ ε
␈∧αTε
(α
␈βαV␈↓ βI␈ε6I␈↓ βa␈ε",␈↓ βq␈ε6E␈↓ ∧∃␈ε",␈↓ ∧%␈ε6E␈↓ ∧I␈ε",␈↓ ∧Y␈ε".␈αε.␈αε.␈↓ ¬	␈ε",␈↓ ¬→␈ε6E␈↓ π$␈ε6I␈↓ π<␈ε",␈↓ πL␈ε6E
␈βαX␈↓ αX␈ε5WR␈α␈ITE(␈↓ ¬@␈ε5)␈↓ ε2␈ε5WRITE(␈↓ πo␈ε5);
␈βαc␈↓ ∧∧␈ε%1␈↓ ∧8␈ε%2␈↓ ¬,␈ε+n␈↓ π←␈ε%1
␈βα|␈↓ ε
␈∧α|ε
(α
␈βα}␈↓ π$␈ε6I␈↓ π<␈ε",␈↓ πL␈ε6E
␈ββ␈↓ ε2␈ε5WRITE(␈↓ πo␈ε5);
␈ββ
␈↓ π←␈ε%2
␈ββ#␈↓ ε
␈∧β#ε
(α
␈ββ'␈↓ εX␈ε5.
␈ββK␈↓ ε
␈∧βKε
(α
␈ββO␈↓ εX␈ε5.
␈ββs␈↓ ε
␈∧βsε
(α
␈ββw␈↓ εX␈ε5.
␈β∧~␈↓ ε
␈∧∧~ε
(α
␈β∧≤␈↓ π$␈ε6I␈↓ π<␈ε",␈↓ πL␈ε6E
␈β∧≡␈↓ ε2␈ε5WRITE(␈↓ πs␈ε5)
␈β∧)␈↓ π←␈ε+n
␈β∧W␈↓ ε
␈∧∧Wε
(α
␈β∧Y␈↓ βo␈ε6I␈↓ ∧π␈ε",␈↓ ∧↔␈ε6E␈↓ ∧;␈ε",␈↓ ∧K␈ε6E␈↓ ∧o␈ε".␈αε.␈αε.␈↓ ¬∨␈ε",␈↓ ¬/␈ε6E␈↓ π$␈ε6I␈↓ π<␈ε",␈↓ πL␈ε6E␈↓ πo␈ε",␈↓ π␈␈ε6E␈↓ λ#␈ε",␈↓ λ3␈ε".␈αε.␈αε.␈↓ λc␈ε",␈↓ λs␈ε6E
␈β∧[␈↓ αX␈ε5WR␈α␈ITELN(␈↓ ¬V␈ε5)␈↓ ε2␈ε5WRITE(␈↓ 	~␈ε5);
␈β∧f␈↓ ∧*␈ε%1␈↓ ∧↑␈ε%2␈↓ ¬B␈ε+n␈↓ π←␈ε%1␈↓ λ∩␈ε%2␈↓ 	ε␈ε+n
␈β∧␈␈↓ ε
␈∧∧␈ε
(α
␈β¬↓␈↓ πI␈ε6I
␈β¬β␈↓ ε2␈ε5WRITELN␈α␈(␈↓ πa␈ε5)
␈β¬B␈↓ α␈ε"When␈αa␈αprogram␈αis␈αexecuted,␈αthe␈αuser␈αis␈αask␈α␈ed␈αfor␈αthe␈αdirectory␈αnames␈αof␈αall␈αthe
␈β¬m␈↓ ↓H␈ε"|les␈αfor␈αwhich␈αPascal␈αnames␈αappear␈αin␈αthe␈α
program␈αhead.␈α⊂The␈αdirectory␈αnames␈αma␈α␈y
␈βε_␈↓ ↓H␈ε"be␈αan␈α␈y␈αTOPS-20␈α|le␈αname.␈α⊂As␈αa␈αcon␈α␈v␈α␈enience,␈αthe␈αnames␈α\␈↓ 	@␈ε""␈αand␈α\␈↓ ∀␈ε""␈αma␈α␈y
␈βε~␈↓ λa␈ε5TTY:␈↓ 
6␈ε5LPT:
␈βεC␈↓ ↓H␈ε"be␈αgiv␈α␈en␈α
as␈αdirectory␈αnames␈α(n␈α↓ote␈αthe␈αcolons);␈αthey␈αare␈αn␈α↓ot␈αactually␈α|les,␈αbut␈αrefer␈α
to
␈βεo␈↓ ↓H␈ε"the␈α
terminal␈αscreen␈α
and␈αline␈α
prin␈α␈ter␈αrespectiv␈α␈ely.␈α∂Use␈αof␈α
\␈↓ 	&␈ε""␈α
as␈α
a␈αdirectory␈α
name
␈βεq␈↓ λG␈ε5TTY:
␈βπ~␈↓ ↓H␈ε"has␈αpitfalls;␈αwhen␈αthe␈αterminal␈αis␈αalso␈αbeing␈αused␈αas␈αan␈αinput␈αsource␈αby␈αthe␈αprogram,
␈βπE␈↓ ↓H␈ε"output␈αma␈α␈y␈αfail␈αto␈αappear␈αon␈αthe␈αterminal␈αscreen␈αat␈αthe␈αdesired␈αtime.
␈βπp␈↓ α␈ε"Tw␈α␈o␈α∞Pascal␈α∞names␈α∞of␈α∞|les␈α∞ma␈α␈y␈α∞be␈α∞implicit,␈α∞unmen␈α␈tioned␈α∞in␈α∞the␈α∞program␈α∞head:
␈βλ≠␈↓ αC␈ε"and␈↓ βf␈ε".␈α
If␈α
n␈α↓o␈α
explicit␈α
Pascal␈α	|le␈α
name␈α
is␈α
giv␈α␈en␈α
in␈α
a␈α
WRITE␈α
or␈α
WRITELN
␈βλ≥␈↓ ↓H␈ε5OU␈α␈TPUT␈↓ βπ␈ε5INPUT
␈βλG␈↓ ↓H␈ε"command,␈↓ βs␈ε"is␈αassumed:
␈βλI␈↓ αv␈ε5OU␈α␈TPUT
␈β	α␈↓ ¬≠␈∧	α¬≠(α
␈β	∧␈↓ βI␈ε6E␈↓ βm␈ε",␈↓ β⎇␈ε".␈αε.␈αε.␈↓ ∧-␈ε",␈↓ ∧=␈ε6E␈↓ π6␈ε6E␈↓ πZ␈ε",␈↓ πj␈ε".␈αε.␈αε.␈↓ λ~␈ε",␈↓ λ*␈ε6E
␈β	ε␈↓ αX␈ε5WR␈α␈ITE(␈↓ ∧d␈ε5)␈↓ ¬@␈ε5WRITE(OUT␈α␈PUT,␈↓ λQ␈ε5)
␈β	⊂␈↓ β\␈ε%1␈↓ ∧P␈ε+n␈↓ πI␈ε%1␈↓ λ=␈ε+n
␈β	D␈↓ ↓H␈ε"If␈αn␈α↓o␈αexplicit␈αPascal␈α|le␈αname␈αis␈αgiv␈α␈en␈αin␈αa␈↓ πJ␈ε"command,␈↓ 	c␈ε"is␈αassumed:
␈β	F␈↓ εs␈ε5RE␈α␈AD␈↓ λx␈ε5INPUT
␈β	␈␈↓ ¬⊂␈∧	␈¬⊂(α
␈β
↓␈↓ β6␈ε6V␈↓ β↑␈ε",␈↓ βn␈ε".␈αε.␈αε.␈↓ ∧≡␈ε",␈↓ ∧.␈ε6V␈↓ πε␈ε6V␈↓ π-␈ε",␈↓ π=␈ε".␈αε.␈αε.␈↓ πm␈ε",␈↓ π⎇␈ε6V
␈β
β␈↓ αX␈ε5RE␈α␈AD(␈↓ ∧Y␈ε5)␈↓ ¬6␈ε5RE␈α␈AD(INPUT,␈↓ λ)␈ε5)
␈β
∞␈↓ βM␈ε%1␈↓ ∧E␈ε+n␈↓ π≥␈ε%1␈↓ λ∃␈ε+n
␈β
B␈↓ ↓H␈ε"When␈↓ β_␈ε"and␈↓ ∧Z␈ε"are␈αused␈αas␈αimplicit␈αPascal␈αnames,␈αthe␈αcorresponding␈αdirec-
␈β
D␈↓ α/␈ε5INP␈α␈UT␈↓ β]␈ε5OUTPUT
␈β
m␈↓ ↓H␈ε"tory␈α∂names␈α⊂are␈α∂also␈α⊂assumed␈α∂to␈α⊂be␈↓ εy␈ε"and␈↓ λ4␈ε".␈α⊂F␈α⎇or␈α∂⎇exibilit␈α␈y,␈α⊃it␈α∂therefore
␈β
o␈↓ ε␈ε5INPUT␈↓ πC␈ε5OUTPU␈α␈T
␈β→␈↓ ↓H␈ε"is␈α
usually␈α
better␈α∞to␈α
explicitly␈α∞name␈↓ π↓␈ε"and␈↓ λ4␈ε"in␈α
the␈α∞program␈α
head.␈α∀When
␈β≠␈↓ εα␈ε5OUTPUT␈↓ πH␈ε5INPUT
␈βD␈↓ α2␈ε"appears␈αin␈αthe␈αprogram␈αhead,␈αit␈αm␈α␈ust␈αbe␈αimmediately␈αfollo␈α␈w␈α␈ed␈αby␈αan␈αasterisk:
␈βF␈↓ ↓H␈ε5IN␈α␈PUT
␈β~␈↓ βo␈ε6P
␈β≤␈↓ αX␈ε5PR␈α␈OGRAM␈↓ ∧≥␈ε5(I␈α␈NPUT*,OUTP␈α␈UT)
␈βq␈↓ α␈ε"When␈α∞it␈α∂is␈α∞in␈α␈tended␈α∞that␈α∞a␈↓ ε5␈ε"command␈α∂alw␈α␈a␈α␈ys␈α∞send␈α∞its␈α∂results␈α∞to␈α∞the␈α∞ter-
␈βs␈↓ ¬I␈ε5WRI␈α␈TE
␈β
≤␈↓ ↓H␈ε"minal␈αscreen,␈α∞it␈αis␈α
possible␈α
to␈α
use␈α
an␈α↓other␈α
implicit␈α
Pascal␈αname:␈↓ 
K␈ε"(unlik␈α␈e␈αthe
␈β
≡␈↓ 	9␈ε5``TTY''
␈β
G␈↓ ↓H␈ε"correponding␈α⊃directory␈α⊃name,␈α∩it␈α⊃con␈α␈tains␈α⊃n␈α↓o␈α⊃colon).␈α∨Since␈α⊃such␈α⊃output␈α⊂lea␈α␈v␈α␈es␈α⊃n␈α↓o
␈β
r␈↓ ↓H␈ε"permanen␈α␈t␈αrecord,␈αit␈αis␈αt␈α␈ypically␈αused␈αto␈αinform␈αand␈αdirect␈αthe␈αuser.
␈β⊃_

␈β↓H␈↓ ↓$␈∧↓H↓$α
u
␈β↓J␈↓ ↓$␈∧↓J↓$Hα␈↓ "␈∧↓J"Hα␈↓ ↔␈∧↓J↔Hα
␈β↓V␈↓ ∧U␈ε>C␈α↓o␈α␈ndi␈α␈tio␈α␈nal␈α∞C␈α↓o␈α␈mm␈α␈a␈α↓n␈α␈ds
␈β↓\␈↓ K␈ε"53
␈βα⊃␈↓ ↓$␈∧α⊃↓$α
u
␈βα←␈↓ ↓H␈ε>Con␈α␈dit␈α␈ion␈α␈a␈α↓l␈α∞Com␈α␈mands␈α␈.
␈ββ.␈↓ α␈ε"Pascal␈α
o{ers␈α∞a␈α
t␈α␈ype␈α
of␈α
command␈α∞which␈α
tests␈α
whether␈α
some␈α∞condition␈α
is␈α
true␈α
or
␈ββY␈↓ ↓H␈ε"false,␈α
and␈αexecutes␈α
one␈α
command␈α
or␈αan␈α↓other␈α
accordingly.␈α∩The␈α
general␈α
form␈α
of␈αsuch
␈β∧∧␈↓ ↓H␈ε"commands␈αis
␈β∧|␈↓ β⊂␈ε6E␈↓ ∧≠␈ε6C␈↓ ¬3␈ε6C
␈β∧}␈↓ αX␈ε5IF␈↓ β<␈ε5THEN␈↓ ∧U␈ε5E␈α␈LSE
␈β¬λ␈↓ ∧1␈ε%1␈↓ ¬I␈ε%2
␈β¬t␈↓ ↓H␈ε"or
␈βεl␈↓ β⊂␈ε6E␈↓ ∧≠␈ε6C
␈βεn␈↓ αX␈ε5IF␈↓ β<␈ε5THEN
␈βεx␈↓ ∧1␈ε%1
␈βπd␈↓ ↓H␈ε"where␈↓ α/␈ε6E␈↓ αT␈ε"is␈αa␈αcondition␈αwhich␈αcan␈αbe␈αtested.␈α⊂If␈↓ π'␈ε6E␈↓ πK␈ε"is␈αtrue,␈↓ λD␈ε6C␈↓ λw␈ε"is␈αexecuted;␈αif␈↓ 
\␈ε6E␈↓ ↓␈ε"is␈αfalse,
␈βπp␈↓ λ[␈ε%1
␈βλ∂␈↓ ↓H␈ε6C␈↓ ↓{␈ε"is␈αexecuted␈αin␈αthe␈α|rst␈αcase,␈αand␈αn␈α↓othing␈αis␈αdone␈αin␈αthe␈αsecond.
␈βλ≤␈↓ ↓↑␈ε%2
␈βλF␈↓ α␈ε"The␈αconditions␈↓ ∧α␈ε"ma␈α␈y␈αbe␈αof␈αan␈α␈y␈αof␈αthe␈αforms
␈β	e␈↓ αR␈ε6E␈↓ βα␈ε"=␈↓ β2␈ε6E
␈β	q␈↓ αe␈ε%1␈↓ βE␈ε%2
␈β
⊂␈↓ αR␈ε6E␈↓ βα␈ε"<>␈↓ βV␈ε6E␈↓ ∧A␈ε"meaning␈↓ ¬Q␈ε6E␈↓ ¬␈␈ε6≤␈↓ ε-␈ε6E
␈β
≥␈↓ αe␈ε%1␈↓ βi␈ε%2␈↓ ¬d␈ε%1␈↓ ε@␈ε%2
␈β
;␈↓ αR␈ε6E␈↓ βα␈ε"<␈↓ β2␈ε6E
␈β
H␈↓ αe␈ε%1␈↓ βE␈ε%2
␈β
g␈↓ αR␈ε6E␈↓ βα␈ε"<=␈↓ βV␈ε6E␈↓ ∧A␈ε"(meaning␈↓ ¬]␈ε6E␈↓ ε␈ε6∀␈↓ ε9␈ε6E␈↓ ε]␈ε")
␈β
s␈↓ αe␈ε%1␈↓ βi␈ε%2␈↓ ¬p␈ε%1␈↓ εL␈ε%2
␈β∩␈↓ αR␈ε6E␈↓ βα␈ε">␈↓ β2␈ε6E
␈β≡␈↓ αe␈ε%1␈↓ βE␈ε%2
␈β=␈↓ αR␈ε6E␈↓ βα␈ε">=␈↓ βV␈ε6E␈↓ ∧A␈ε"(meaning␈↓ ¬]␈ε6E␈↓ ε␈ε6∃␈↓ ε9␈ε6E␈↓ ε]␈ε")
␈βI␈↓ αe␈ε%1␈↓ βi␈ε%2␈↓ ¬p␈ε%1␈↓ εL␈ε%2
␈βh␈↓ β≥␈ε6E␈↓ ∧A␈ε"(true␈αif␈αand␈αonly␈αif␈αthe␈αin␈α␈teger␈↓ λ'␈ε6E␈↓ λL␈ε"is␈αan␈αodd␈αn␈α␈um␈α␈ber)
␈βj␈↓ αR␈ε5ODD␈α␈(␈↓ β6␈ε5)
␈βl␈↓ α␈ε"Expressions␈α
such␈α
as␈αthese,␈α
ha␈α␈ving␈αas␈α
v␈α}alues␈↓ λ	␈ε"or␈↓ 	≤␈ε"rather␈α
than␈α
a␈α
n␈α␈um␈α␈ber,
␈βn␈↓ π3␈ε5TRUE␈↓ λ3␈ε5FALSE
␈β
↔␈↓ ↓H␈ε"are␈αcalled␈ε/␈αBo␈α↓olean␈αexpressions␈↓ ¬/␈ε"(a$er␈αlogician␈αGeorge␈αBo␈α↓ole).
␈β∞&␈↓ ↓H␈ε2Example
␈β∞\␈↓ α␈ε"T␈α⎇o␈αprin␈α␈t␈αa␈αtable␈αof␈αsquares,␈αstarting␈αa␈αnew␈αline␈αa$er␈αev␈α␈ery␈α|$h␈αn␈α␈um␈α␈ber,␈αw␈α␈e␈αk␈α␈eep
␈β∂λ␈↓ ↓H␈ε"a␈αv␈α}ariable␈αwith␈α
which␈αw␈α␈e␈αcoun␈α␈t␈α
h␈α↓o␈α␈w␈αman␈α␈y␈αsquares␈α
ha␈α␈v␈α␈e␈αbeen␈αprin␈α␈ted␈α
on␈αthe␈αcurren␈α␈t
␈β∂3␈↓ ↓H␈ε"line.␈α⊂When␈αthe␈αcoun␈α␈t␈αreaches␈α|v␈α␈e,␈αw␈α␈e␈αstart␈αa␈αnew␈αline␈αand␈αreset␈αthe␈αcoun␈α␈t␈αto␈αzero.
␈β⊃∨

␈β↓H␈↓ ↓$␈∧↓H↓$α
u
␈β↓J␈↓ ↓$␈∧↓J↓$Hα␈↓ α→␈∧↓Jα→Hα␈↓ ↔␈∧↓J↔Hα
␈β↓V␈↓ ¬P␈ε>C␈α↓o␈α␈ndi␈α␈tio␈α␈nal␈α∞C␈α↓o␈α␈mm␈α␈a␈α↓n␈α␈ds
␈β↓\␈↓ ↓M␈ε"54
␈βα⊃␈↓ ↓$␈∧α⊃↓$α
u
␈βαP␈↓ αP␈ε∃(heading,␈↓ βz␈ε∃declarations)
␈βαx␈↓ αP␈ε∃BEGIN
␈ββ∨␈↓ αP␈ε∃COUNT:=␈↓ βX␈ε∃0;
␈ββG␈↓ αP␈ε∃FOR␈↓ β∀␈ε∃I:=␈↓ βX␈ε∃1␈↓ βz␈ε∃TO␈↓ ∧-␈ε∃93␈↓ ∧`␈ε∃DO
␈ββo␈↓ ββ␈ε∃BEGIN
␈β∧⊗␈↓ ββ␈ε∃WRITE(I*I);
␈β∧>␈↓ ββ␈ε∃COUNT␈↓ βi␈ε∃:=␈↓ ∧≤␈ε∃COUNT+1;
␈β∧e␈↓ ββ␈ε∃IF␈↓ β6␈ε∃COUNT␈↓ ∧≤␈ε∃=␈↓ ∧>␈ε∃5␈↓ ∧`␈ε∃THEN
␈β¬
␈↓ β6␈ε∃BEGIN
␈β¬5␈↓ β6␈ε∃WRITELN;
␈β¬\␈↓ β6␈ε∃COUNT:=␈↓ ∧>␈ε∃0
␈βε∧␈↓ β6␈ε∃END
␈βε+␈↓ ββ␈ε∃END
␈βεS␈↓ αP␈ε∃END.
␈βπ≡␈↓ α␈ε"Notice␈α⊃the␈α⊃di{erence␈α⊂bet␈α␈w␈α␈een␈↓ ε≥␈ε"and␈↓ πF␈ε"the␈α⊃|rst␈α⊃is␈α⊃used␈α⊃in␈α⊂conditions,␈α∩the
␈βπ ␈↓ ¬y␈ε5=␈↓ εh␈ε5:=␈α∩;
␈βπI␈↓ ↓H␈ε"second␈αin␈αassignmen␈α␈t.
␈βλ;␈↓ ↓H␈ε2Example
␈βλm␈↓ α␈ε"T␈α⎇o␈αprin␈α␈t␈αthe␈αpicture␈αof␈αa␈αsquare␈αwith␈αa␈αblank␈αdiagonal␈αas␈αsh␈α↓o␈α␈wn␈αbelo␈α␈w
␈β	,␈↓ ↓H␈∧	,↓Hα
-
␈β	.␈↓ ↓H␈∧	.↓Hλα␈↓ s␈∧	.sλα
␈β	5␈↓ ↓H␈∧	5↓Hα
-
␈β	D␈↓ αa␈ε∃****
␈β	k␈↓ αP␈ε∃*␈↓ αr␈ε∃***
␈β
∪␈↓ αP␈ε∃**␈↓ ββ␈ε∃**
␈β
:␈↓ αP␈ε∃***␈↓ β∀␈ε∃*
␈β
b␈↓ αP␈ε∃****
␈β≥␈↓ ↓H␈∧≥↓Hα
-
␈β∨␈↓ ↓H␈∧∨↓Hλα␈↓ s␈∧∨sλα
␈β&␈↓ ↓H␈∧&↓Hα
-
␈β;␈↓ α␈ε"w␈α␈e␈αcould␈αwrite
␈β␈↓ αP␈ε∃FOR␈↓ β∀␈ε∃R:=1␈↓ βi␈ε∃TO␈↓ ∧≤␈ε∃5␈↓ ∧>␈ε∃DO␈↓ ¬∪␈ε∃(*␈↓ ¬F␈ε∃5␈↓ ¬h␈ε∃ROWS␈↓ ε=␈ε∃*)
␈β(␈↓ ββ␈ε∃BEGIN
␈βO␈↓ ββ␈ε∃FOR␈↓ βG␈ε∃C:=1␈↓ ∧≤␈ε∃TO␈↓ ∧O␈ε∃5␈↓ ∧q␈ε∃DO␈↓ ¬F␈ε∃(*␈↓ ¬y␈ε∃5␈↓ ε≠␈ε∃CHARACTERS␈↓ πV␈ε∃PER␈↓ λ~␈ε∃ROW␈↓ λ↑␈ε∃*)
␈βw␈↓ β6␈ε∃IF␈↓ βi␈ε∃R=C␈↓ ∧-␈ε∃THEN
␈β
≡␈↓ βi␈ε∃WRITE('␈↓ ∧q␈ε∃')␈↓ ¬F␈ε∃(*␈↓ ¬y␈ε∃ON␈↓ ε,␈ε∃THE␈↓ εp␈ε∃DIAGONAL␈↓ λ	␈ε∃*)
␈β
F␈↓ β6␈ε∃ELSE
␈β
n␈↓ βi␈ε∃WRITE('*');␈↓ ¬F␈ε∃(*␈↓ ¬y␈ε∃NOT␈↓ ε=␈ε∃ON␈↓ εp␈ε∃DIAGONAL␈↓ λ	␈ε∃*)
␈β∞∃␈↓ ββ␈ε∃WRITELN
␈β∞=␈↓ ββ␈ε∃END
␈β∂λ␈↓ ↓H␈ε"W␈α⎇e␈α∞could,␈α∂in␈α∞this␈α∂case,␈α∂ha␈α␈v␈α␈e␈α∞designed␈α∂the␈α∞program␈α∂with␈α↓out␈α∞conditional␈α∞commands,
␈β∂3␈↓ ↓H␈ε"by␈αviewing␈αthe␈αpattern␈αas␈αa␈αpair␈αof␈αtriangles␈αseparated␈αby␈αa␈αblank␈αdiagonal␈αline:
␈β⊃∨

␈β↓H␈↓ ↓$␈∧↓H↓$α
u
␈β↓J␈↓ ↓$␈∧↓J↓$Hα␈↓ "␈∧↓J"Hα␈↓ ↔␈∧↓J↔Hα
␈β↓V␈↓ ∧U␈ε>C␈α↓o␈α␈ndi␈α␈tio␈α␈nal␈α∞C␈α↓o␈α␈mm␈α␈a␈α↓n␈α␈ds
␈β↓\␈↓ K␈ε"55
␈βα⊃␈↓ ↓$␈∧α⊃↓$α
u
␈βαN␈↓ αP␈ε∃FOR␈↓ β∀␈ε∃R␈↓ β6␈ε∃:=␈↓ βi␈ε∃1␈↓ ∧␈ε∃TO␈↓ ∧>␈ε∃5␈↓ ∧`␈ε∃DO
␈βαu␈↓ ββ␈ε∃BEGIN
␈ββ≥␈↓ ββ␈ε∃FOR␈↓ βG␈ε∃C␈↓ βi␈ε∃:=␈↓ ∧≤␈ε∃1␈↓ ∧>␈ε∃TO␈↓ ∧q␈ε∃R-1␈↓ ¬5␈ε∃DO␈↓ ¬h␈ε∃(*SKIPS␈↓ εp␈ε∃IF␈↓ π#␈ε∃R␈↓ πE␈ε∃=␈↓ πg␈ε∃1*)
␈ββD␈↓ β6␈ε∃WRITE('*');
␈ββl␈↓ ββ␈ε∃WRITE('␈↓ ∧␈ε∃');
␈β∧∀␈↓ ββ␈ε∃FOR␈↓ βG␈ε∃C␈↓ βi␈ε∃:=␈↓ ∧≤␈ε∃1␈↓ ∧>␈ε∃TO␈↓ ∧q␈ε∃5-R␈↓ ¬5␈ε∃DO
␈β∧;␈↓ β6␈ε∃WRITE('*');
␈β∧c␈↓ ββ␈ε∃WRITELN
␈β¬
␈↓ ββ␈ε∃END
␈βπ|␈↓ ↓H␈ε2Example
␈βλL␈↓ α␈ε"In␈α	the␈αλgame␈α	of␈αλchess,␈α
the␈αλro␈α↓ok␈α	is␈αλa␈α	piece␈α	which␈αλcan␈α	m␈α↓o␈α␈v␈α␈e␈αλh␈α↓orizon␈α␈tally␈α	or␈αλv␈α␈ertically,
␈βλw␈↓ ↓H␈ε"as␈α⊃far␈α⊃as␈α⊃desired␈α⊃(unless␈α⊃block␈α␈ed␈α⊃by␈α⊃an␈α↓other␈α∩piece).␈α∨W␈α⎇e␈α⊃consider␈α⊃the␈α⊃problem␈α⊃of
␈β	"␈↓ ↓H␈ε"dra␈α␈wing␈αa␈αdiagram␈α
to␈αsh␈α↓o␈α␈w␈αthe␈α
ro␈α↓ok␈αat␈αa␈αspeci|ed␈α
place␈αon␈αthe␈α
chessboard,␈αwith␈αall
␈β	M␈↓ ↓H␈ε"the␈α∂squares␈α∂to␈α∂which␈α∂the␈α∂ro␈α↓ok␈α∂migh␈α␈t␈α∂m␈α↓o␈α␈v␈α␈e␈α∂mark␈α␈ed␈α∂with␈α∂asterisks.␈α→An␈α∂example␈α∂of
␈β	x␈↓ ↓H␈ε"such␈αa␈αdiagram␈αwith␈αthe␈αro␈α↓ok␈αin␈αthe␈αfourth␈αro␈α␈w␈αand␈αthe␈αthird␈αcolumn␈αis:
␈β
8␈↓ ↓H␈∧
8↓Hα
-
␈β
9␈↓ ↓H␈∧
9↓Hλα␈↓ s␈∧
9sλα
␈β
@␈↓ ↓H␈∧
@↓Hα
-
␈β
O␈↓ αP␈ε∃..*.....
␈β
w␈↓ αP␈ε∃..*.....
␈β≡␈↓ αP␈ε∃..*.....
␈βF␈↓ αP␈ε∃**R*****
␈βn␈↓ αP␈ε∃..*.....
␈β∃␈↓ αP␈ε∃..*.....
␈β=␈↓ αP␈ε∃..*.....
␈βd␈↓ αP␈ε∃..*.....
␈β
 ␈↓ ↓H␈∧
 ↓Hα
-
␈β
!␈↓ ↓H␈∧
!↓Hλα␈↓ s␈∧
!sλα
␈β
(␈↓ ↓H␈∧
(↓Hα
-
␈β
[␈↓ ↓H␈ε"The␈α∞large␈α∂n␈α␈um␈α␈ber␈α∞of␈α∂dots␈α∞and␈α∂asterisks␈α∞suggests␈α∂using␈α∂an␈α∞iteration,␈α∂but␈α∂since␈α∞they
␈β∞ε␈↓ ↓H␈ε"are␈αin␈α␈termixed␈αthere␈αis␈αlittle␈αh␈α↓ope␈αof␈α
writing␈αseparate␈αiterations␈αto␈αprin␈α␈t␈αdots␈αand␈αto
␈β∞1␈↓ ↓H␈ε"prin␈α␈t␈α∂asterisks.␈α_Instead,␈α⊂w␈α␈e␈α∂iterate␈α∂a␈α∂conditional␈α∂command␈α∂which,␈α∂when␈α∂executed,
␈β∞\␈↓ ↓H␈ε"prin␈α␈ts␈α	one␈α
character.␈α∂It␈α	ch␈α↓o␈α↓oses␈α
which␈α	character␈α
to␈α	prin␈α␈t␈α
in␈α	each␈α
position␈α	of␈α
the␈α	board
␈β∂λ␈↓ ↓H␈ε"by␈α∞testing␈α∞whether␈α∞the␈α∞position␈α∞is␈α∞occupied␈α∞or␈α∞attack␈α␈ed␈α∞by␈α∞the␈α∞ro␈α↓ok.␈α⊗The␈α∞iterativ␈α␈e
␈β∂3␈↓ ↓H␈ε"structure␈αof␈αthe␈αprogram␈αis
␈β⊃∨

␈β↓H␈↓ ↓$␈∧↓H↓$α
u
␈β↓J␈↓ ↓$␈∧↓J↓$Hα␈↓ α→␈∧↓Jα→Hα␈↓ ↔␈∧↓J↔Hα
␈β↓V␈↓ ¬P␈ε>C␈α↓o␈α␈ndi␈α␈tio␈α␈nal␈α∞C␈α↓o␈α␈mm␈α␈a␈α↓n␈α␈ds
␈β↓\␈↓ ↓M␈ε"56
␈βα⊃␈↓ ↓$␈∧α⊃↓$α
u
␈βαP␈↓ αP␈ε∃VAR␈↓ β∀␈ε∃R,C␈↓ βX␈ε∃:␈↓ βz␈ε∃INTEGER;␈↓ ε≠␈ε∃(*␈↓ εN␈ε∃ROW␈↓ π∩␈ε∃AND␈↓ πV␈ε∃COLUMN␈↓ λM␈ε∃COUNTERS␈↓ 	f␈ε∃*)
␈βαx␈↓ β∀␈ε∃ROOKROW,ROOKCOL␈↓ ¬$␈ε∃:␈↓ ¬F␈ε∃INTEGER;␈↓ ε←␈ε∃(*␈↓ π#␈ε∃NOTE␈↓ πx␈ε∃DESCRIPTIVE␈↓ 	D␈ε∃NAMES␈↓ 
*␈ε∃*)
␈ββ∨␈↓ αP␈ε∃WRITE(TTY,'ENTER␈↓ ∧q␈ε∃ROW␈↓ ¬5␈ε∃');
␈ββG␈↓ αP␈ε∃BREAK(TTY);
␈ββo␈↓ αP␈ε∃READ(TTY,ROOKROW);
␈β∧⊗␈↓ αP␈ε∃WRITE(TTY,'ENTER␈↓ ∧q␈ε∃COLUMN␈↓ ¬h␈ε∃');
␈β∧>␈↓ αP␈ε∃BREAK(TTY);
␈β∧e␈↓ αP␈ε∃READ(TTY,ROOKCOL);
␈β¬
␈↓ αP␈ε∃FOR␈↓ β∀␈ε∃R:=1␈↓ βi␈ε∃STEP␈↓ ∧>␈ε∃1␈↓ ∧`␈ε∃UNTIL␈↓ ¬F␈ε∃8␈↓ ¬h␈ε∃DO␈↓ εN␈ε∃(*␈↓ π↓␈ε∃DRAW␈↓ πV␈ε∃THE␈↓ λ~␈ε∃R-TH␈↓ λo␈ε∃ROW␈↓ 	3␈ε∃*)
␈β¬5␈↓ ββ␈ε∃BEGIN
␈β¬\␈↓ ββ␈ε∃FOR␈↓ βG␈ε∃C:=1␈↓ ∧≤␈ε∃STEP␈↓ ∧q␈ε∃1␈↓ ¬∪␈ε∃UNTIL␈↓ ¬y␈ε∃8␈↓ ε≠␈ε∃DO
␈βε∧␈↓ βG␈ε∃Print␈↓ ∧-␈ε∃the␈↓ ∧q␈ε∃correct␈↓ ¬y␈ε∃character␈↓ π#␈ε∃for␈↓ πg␈ε∃column␈↓ λ↑␈ε∃C␈↓ 	␈ε∃of␈↓ 	3␈ε∃row␈↓ 	w␈ε∃R;
␈βε+␈↓ ββ␈ε∃WRITELN
␈βεS␈↓ ββ␈ε∃END
␈βπ≡␈↓ ↓H␈ε"The␈αλprin␈α␈ting␈αλcommand␈αλrequired␈αλabo␈α␈v␈α␈e␈αλm␈α␈ust␈αλprin␈α␈t␈αλ\␈↓ πk␈ε""␈αλif␈↓ 	z␈ε"and␈↓ ␈ε";
␈βπ ␈↓ πX␈ε5R␈↓ λ#␈ε5R␈α∩=␈α∪ROOKROW␈↓ 
<␈ε5C␈α∪=␈α∪ROOKCO␈α␈L
␈βπI␈↓ ↓H␈ε"otherwise,␈α⊂it␈α⊂m␈α␈ust␈α⊂prin␈α␈t␈α⊂\␈↓ ∧⎇␈ε""␈α⊂on␈α⊂the␈α⊂ro␈α↓ok's␈α∂ro␈α␈w␈↓ 	T␈ε"and␈α⊂on␈α⊂the␈α∂ro␈α↓ok's
␈βπK␈↓ ∧j␈ε5*␈↓ πN␈ε5(R␈α∪=␈α∪ROO␈α␈KROW)
␈βπt␈↓ ↓H␈ε"column␈↓ ∧=␈ε",␈α
and␈α∞\␈↓ ¬A␈ε""␈α∀elsewhere.␈α∀The␈α
prin␈α␈ting␈α
command␈α∞needed␈α
can␈α
be
␈βπv␈↓ αG␈ε5(C␈α∪=␈α∩ROOKCOL)␈↓ ¬.␈ε5.
␈βλ∨␈↓ ↓H␈ε"written:
␈βλd␈↓ αP␈ε∃IF␈↓ ββ␈ε∃R=ROOKROW␈↓ ∧-␈ε∃THEN
␈β	␈↓ βi␈ε∃(*␈↓ ∧≤␈ε∃PRINT␈↓ ¬α␈ε∃ONE␈↓ ¬F␈ε∃CHARACTER␈↓ εp␈ε∃ON␈↓ π#␈ε∃ROOK'S␈↓ λ~␈ε∃ROW␈↓ λ↑␈ε∃*)
␈β	3␈↓ ββ␈ε∃IF␈↓ β6␈ε∃C=ROOKCOL␈↓ ∧`␈ε∃THEN␈↓ ¬5␈ε∃WRITE('R')
␈β	[␈↓ ββ␈ε∃ELSE␈↓ βX␈ε∃WRITE('*')
␈β
α␈↓ αP␈ε∃ELSE␈↓ βi␈ε∃(*␈↓ ∧≤␈ε∃NOT␈↓ ∧`␈ε∃ON␈↓ ¬∪␈ε∃ROOK'S␈↓ ε
␈ε∃ROW␈↓ εN␈ε∃*)
␈β
*␈↓ ββ␈ε∃IF␈↓ β6␈ε∃C=ROOKCOL␈↓ ∧`␈ε∃THEN␈↓ ¬5␈ε∃WRITE('*')
␈β
R␈↓ ββ␈ε∃ELSE␈↓ βX␈ε∃WRITE('.')
␈β≥␈↓ ↓H␈ε"It␈α
is␈α
essen␈α␈tial␈α
to␈α
the␈α∞abo␈α␈v␈α␈e␈α
command␈α
that␈α
whenev␈α␈er␈α
it␈α
is␈α∞executed,␈α
it␈α
prin␈α␈ts␈α
exactly
␈βH␈↓ ↓H␈ε"one␈α∂character.␈α→The␈α∂|rst␈α⊂condition␈α∂ch␈α↓o␈α↓oses␈α∂bet␈α␈w␈α␈een␈α∂t␈α␈w␈α␈o␈α∂commands;␈α⊃each␈α∂of␈α∂them,
␈βs␈↓ ↓H␈ε"if␈α∩executed,␈α∃prin␈α␈ts␈α∪one␈α∩character,␈α∃as␈α∩desired.␈α%What␈α∩w␈α␈ould␈α∪happen␈α∪if␈α∪the␈α∩abo␈α␈v␈α␈e
␈β≡␈↓ ↓H␈ε"prin␈α␈ting␈α
command␈α
w␈α␈ere␈α
designed␈α
so␈α
that␈αwhen␈↓ λ␈␈ε"it␈α
w␈α␈ould␈α
prin␈α␈t␈α
the␈α
en␈α␈tire
␈β ␈↓ π%␈ε5R␈α∪=␈α∩ROOKROW
␈βI␈↓ ↓H␈ε"8␈αcharacter␈αro␈α␈w?␈α⊂(If␈αin␈αdoubt,␈αtry␈αit.)
␈β|␈↓ α␈ε"O$en,␈α⊂when␈α⊂a␈α∂long␈α⊂series␈α∂of␈α⊂actions␈α∂is␈α⊂desired,␈α⊂but␈α⊂the␈α∂actions␈α∂are␈α⊂a␈α∂mixture
␈β
'␈↓ ↓H␈ε"of␈α∞sev␈α␈eral␈α∞di{eren␈α␈t␈α∞kinds,␈α∞a␈α∂programmer␈α∞will␈α∞write␈α∞an␈α∞iterativ␈α␈e␈α∞command,␈α∞iterating
␈β
R␈↓ ↓H␈ε"a␈α∂conditional␈α⊂command␈α∂which␈α⊂selects␈α∂the␈α⊂appropriate␈α∂action␈α⊂for␈α∂each␈α∂v␈α}alue␈α⊂of␈α∂the
␈β
⎇␈↓ ↓H␈ε"iteration␈αv␈α}ariable.
␈β∞/␈↓ α␈ε"The␈αgrammar␈αof␈αconditional␈αcommands␈αpermits␈αan␈αapparen␈α␈tly␈αam␈α␈biguous␈αsitua-
␈β∞[␈↓ ↓H␈ε"tion␈α⊂to␈α⊂arise.␈α≤Suppose␈α⊂w␈α␈e␈α⊂w␈α␈an␈α␈ted␈α⊂to␈α⊂write␈α⊂a␈α⊂command␈α⊂to␈α⊂test␈α⊂v␈α}ariables␈↓ 
␈ε"and␈↓ j␈ε",
␈β∞]␈↓ 
k␈ε5X␈↓ X␈ε5Y
␈β∂ε␈↓ ↓H␈ε"prin␈α␈ting␈↓ αo␈ε"if␈↓ β7␈ε6≤␈↓ ∧↓␈ε",␈αprin␈α␈ting␈↓ ¬?␈ε"if␈↓ εK␈ε"and␈↓ πo␈ε",␈αand␈αdoing␈αn␈α↓othing␈αif␈↓ >␈ε"but
␈β∂λ␈↓ αQ␈ε52␈↓ β⊃␈ε5X␈↓ βn␈ε50␈↓ ¬ ␈ε51␈↓ ¬a␈ε5X␈α∩=␈α∪0␈↓ π⊃␈ε5Y␈α∪=␈α∩0␈↓ 
T␈ε5X␈α∪=␈α∪0
␈β∂1␈↓ ↓m␈ε6≤␈↓ α7␈ε".␈α⊂W␈α⎇e␈αmigh␈α␈t␈αwrite:
␈β∂3␈↓ ↓H␈ε5Y␈↓ α$␈ε50
␈β⊃∨

␈β↓H␈↓ ↓$␈∧↓H↓$α
u
␈β↓J␈↓ ↓$␈∧↓J↓$Hα␈↓ "␈∧↓J"Hα␈↓ ↔␈∧↓J↔Hα
␈β↓V␈↓ ∧U␈ε>C␈α↓o␈α␈ndi␈α␈tio␈α␈nal␈α∞C␈α↓o␈α␈mm␈α␈a␈α↓n␈α␈ds
␈β↓\␈↓ K␈ε"57
␈βα⊃␈↓ ↓$␈∧α⊃↓$α
u
␈βαN␈↓ αP␈ε∃IF␈↓ ββ␈ε∃X␈↓ β%␈ε∃=␈↓ βG␈ε∃0␈↓ βi␈ε∃THEN
␈βαu␈↓ ββ␈ε∃IF␈↓ β6␈ε∃Y␈↓ βX␈ε∃=␈↓ βz␈ε∃0␈↓ ∧≤␈ε∃THEN␈↓ ∧q␈ε∃WRITE(1)
␈ββ≥␈↓ αP␈ε∃ELSE␈↓ β%␈ε∃WRITE(2)
␈ββZ␈↓ ↓H␈ε"On␈α
the␈αother␈α
hand,␈α∞if␈αw␈α␈e␈α
w␈α␈an␈α␈ted␈α
to␈α
do␈α
n␈α↓othing␈α
if␈↓ λ␈ε6≤␈↓ λV␈ε",␈α
prin␈α␈t␈↓ 	f␈ε"if␈↓ 
u␈ε"and
␈ββ\␈↓ πf␈ε5X␈↓ λC␈ε50␈↓ 	G␈ε51␈↓ 
	␈ε5X␈α∪=␈α∪0␈↓ <␈ε5Y␈α∪=
␈β∧¬␈↓ ↓[␈ε",␈αand␈αprin␈α␈t␈↓ β.␈ε"if␈↓ ∧;␈ε"and␈↓ ¬'␈ε6≤␈↓ ¬q␈ε",␈αw␈α␈e␈αmigh␈α␈t␈αwrite
␈β∧π␈↓ ↓H␈ε50␈↓ β⊂␈ε52␈↓ βP␈ε5X␈α∪=␈α∪0␈↓ ¬↓␈ε5Y␈↓ ¬↑␈ε50
␈β∧B␈↓ αP␈ε∃IF␈↓ ββ␈ε∃X␈↓ β%␈ε∃=␈↓ βG␈ε∃0␈↓ βi␈ε∃THEN
␈β∧j␈↓ ββ␈ε∃IF␈↓ β6␈ε∃Y␈↓ βX␈ε∃=␈↓ βz␈ε∃0␈↓ ∧≤␈ε∃THEN␈↓ ∧q␈ε∃WRITE(1)
␈β¬∩␈↓ ββ␈ε∃ELSE␈↓ βX␈ε∃WRITE(2)
␈β¬N␈↓ ↓H␈ε"These␈α⊃are␈α⊃the␈α⊃same␈α∩command,␈α∩except␈α∩for␈α⊃the␈α⊃spacing,␈α∪which␈α⊃is␈α⊃n␈α↓ot␈α⊃seman␈α␈tically
␈β¬z␈↓ ↓H␈ε"signi|can␈α␈t.␈α∂Y␈α⎇et␈α	the␈α	|rst␈α	supposedly␈α	prin␈α␈ts␈↓ εs␈ε"if␈↓ π8␈ε6≤␈↓ λα␈ε",␈α
while␈α	the␈α	second␈αλdoes␈α	n␈α↓ot␈α	prin␈α␈t
␈β¬|␈↓ εX␈ε52␈↓ π∩␈ε5X␈↓ πo␈ε50
␈βε%␈↓ ↓H␈ε"an␈α␈ything␈α∂if␈↓ β+␈ε6≤␈↓ βu␈ε".␈α→Which␈α∂does␈α∂the␈α∂command␈α∂mean?␈α→It␈α∂has␈α∂the␈α∞second␈α∂meaning;
␈βε'␈↓ βε␈ε5X␈↓ βb␈ε50
␈βεP␈↓ ↓H␈ε"where␈α⊂an␈↓ βE␈ε"could␈α⊂be␈α⊂matched␈α⊂with␈α⊂m␈α↓ore␈α⊂than␈α⊂one␈↓ λl␈ε",␈↓ 	ε␈ε"it␈α⊂is␈α⊂matched␈α⊂with␈α⊂the
␈βεR␈↓ αj␈ε5EL␈α␈SE␈↓ λG␈ε5I␈α␈F
␈βε{␈↓ ↓H␈ε/nearest␈ε"␈αpossible␈α
one.␈α∩W␈α⎇e␈αcould␈α
force␈α
the␈↓ π*␈ε"to␈α
match␈α
the␈α|rst␈↓ 	u␈ε",␈αas␈α
w␈α␈e␈αin␈α␈tended
␈βε⎇␈↓ εR␈ε5ELSE␈↓ 	O␈ε5IF
␈βπ&␈↓ ↓H␈ε"in␈αthe␈α|rst␈αprogram,␈αby␈α\hiding"␈αthe␈αsecond␈↓ π<␈ε"inside␈αa␈αcompound␈αstatemen␈α␈t:
␈βπ(␈↓ π␈ε5IF
␈βπd␈↓ αP␈ε∃IF␈↓ ββ␈ε∃X␈↓ β%␈ε∃=␈↓ βG␈ε∃0␈↓ βi␈ε∃THEN
␈βλ␈↓ ββ␈ε∃BEGIN
␈βλ3␈↓ ββ␈ε∃IF␈↓ β6␈ε∃Y␈↓ βX␈ε∃=␈↓ βz␈ε∃0␈↓ ∧≤␈ε∃THEN␈↓ ∧q␈ε∃WRITE(1)
␈βλ[␈↓ ββ␈ε∃END
␈β	α␈↓ αP␈ε∃ELSE␈↓ β%␈ε∃WRITE(2)
␈β	?␈↓ α␈ε"As␈α
a␈α
general␈α
rule,␈α
bet␈α␈w␈α␈een␈α
an␈α␈y␈↓ ε≥␈ε"and␈α
its␈α
matching␈↓ λx␈ε",␈α
there␈α
m␈α␈ust␈α
be␈α
the␈α	same
␈β	A␈↓ ¬n␈ε5I␈α␈F␈↓ λ-␈ε5EL␈α␈SE
␈β	j␈↓ ↓H␈ε"n␈α␈um␈α␈ber␈αof␈↓ β→␈ε"s␈αas␈↓ ∧+␈ε"s,␈αn␈α↓ot␈αcoun␈α␈ting␈αth␈α↓ose␈α\hidden"␈αinside␈αblocks.
␈β	l␈↓ αt␈ε5IF␈↓ β←␈ε5ELSE
␈β
%␈↓ ¬β␈∧
%¬β(α
␈β
'␈↓ β⊂␈ε6E␈↓ ¬b␈ε6E
␈β
)␈↓ αX␈ε5IF␈↓ βG␈ε5THEN␈↓ ¬)␈ε5IF␈↓ ε_␈ε5THEN
␈β
4␈↓ β#␈ε%1␈↓ ¬u␈ε%1
␈β
M␈↓ ¬β␈∧
M¬β(α
␈β
O␈↓ β#␈ε6E␈↓ ∧8␈ε6C
␈β
Q␈↓ αk␈ε5I␈α␈F␈↓ βZ␈ε5THEN␈↓ ¬<␈ε5BEG␈α␈IN
␈β
[␈↓ β6␈ε%2␈↓ ∧O␈ε%1
␈β
u␈↓ ¬β␈∧
u¬β(α
␈β
w␈↓ βI␈ε6C␈↓ ¬t␈ε6E␈↓ π
␈ε6C
␈β
y␈↓ αk␈ε5E␈α␈LSE␈↓ ¬<␈ε5IF␈↓ ε+␈ε5THEN
␈ββ␈↓ β←␈ε%2␈↓ επ␈ε%2␈↓ π ␈ε%1
␈β≤␈↓ ¬β␈∧≤¬β(α
␈β≡␈↓ ε~␈ε6C
␈β ␈↓ ¬<␈ε5ELS␈α␈E
␈β+␈↓ ε0␈ε%2
␈βD␈↓ ¬β␈∧D¬β(α
␈βH␈↓ ¬<␈ε5END
␈β⊃_

␈β↓H␈↓ ↓$␈∧↓H↓$α
u
␈β↓J␈↓ ↓$␈∧↓J↓$Hα␈↓ α→␈∧↓Jα→Hα␈↓ ↔␈∧↓J↔Hα
␈β↓V␈↓ ¬P␈ε>C␈α↓o␈α␈ndi␈α␈tio␈α␈nal␈α∞C␈α↓o␈α␈mm␈α␈a␈α↓n␈α␈ds
␈β↓\␈↓ ↓M␈ε"58
␈βα⊃␈↓ ↓$␈∧α⊃↓$α
u
␈βαO␈↓ ↓H␈ε2Example
␈ββ∪␈↓ ↓H␈ε∃(*␈↓ α?␈ε∃SOLUTION␈↓ βX␈ε∃OF␈↓ ∧␈ε∃A␈↓ ∧-␈ε∃QUADRATIC␈↓ ¬W␈ε∃EQUATION␈↓ εp␈ε∃:␈↓ π∩␈ε∃A␈↓ π4␈ε∃X␈↓ πV␈ε∃X␈↓ λ	␈ε∃+␈↓ λ<␈ε∃B␈↓ λ↑␈ε∃X␈↓ 	⊃␈ε∃+␈↓ 	D␈ε∃C␈↓ 
␈␈ε∃*)
␈ββ:␈↓ ↓H␈ε∃PROGRAM␈↓ αP␈ε∃QUADEQUATION␈↓ ∧-␈ε∃(␈↓ ∧O␈ε∃INPUT*,␈↓ ¬W␈ε∃OUTPUT␈↓ εN␈ε∃)␈↓ εp␈ε∃;
␈ββb␈↓ ↓H␈ε∃VAR␈↓ α≥␈ε∃A,␈↓ αP␈ε∃B,␈↓ ββ␈ε∃C,␈↓ εp␈ε∃(*COEFFICIENTS␈↓ λo␈ε∃OF␈↓ 	"␈ε∃EQUATION*)
␈β∧	␈↓ α≥␈ε∃DISCR␈↓ ∧`␈ε∃:␈↓ ¬∪␈ε∃REAL␈↓ ¬h␈ε∃;␈↓ εp␈ε∃(*DISCRIMINANT␈↓ λo␈ε∃OF␈↓ 	"␈ε∃EQUATION␈↓ 
;␈ε∃*)
␈β∧1␈↓ ↓H␈ε∃BEGIN
␈β∧Y␈↓ ↓H␈ε∃(*␈↓ ↓{␈ε∃INPUT␈↓ αa␈ε∃AND␈↓ β%␈ε∃INITIAL␈↓ ∧-␈ε∃OUTPUT␈↓ ¬$␈ε∃*)
␈β¬␈↓ ↓H␈ε∃READ␈↓ α≥␈ε∃(␈↓ α?␈ε∃A,␈↓ αr␈ε∃B,␈↓ β%␈ε∃C␈↓ βG␈ε∃)␈↓ βi␈ε∃;
␈β¬(␈↓ ↓H␈ε∃WRITELN␈↓ αP␈ε∃('␈↓ ββ␈ε∃SOLUTION␈↓ ∧≤␈ε∃OF␈↓ ∧O␈ε∃QUADRATIC␈↓ ¬y␈ε∃EQUATION',
␈β¬O␈↓ αP␈ε∃A:8:4,␈↓ βG␈ε∃'␈↓ βi␈ε∃Xβ2␈↓ ∧-␈ε∃+␈↓ ∧O␈ε∃',␈↓ ¬α␈ε∃B:8:4,␈↓ ¬y␈ε∃'␈↓ ε≠␈ε∃X␈↓ ε=␈ε∃+␈↓ ε←␈ε∃',␈↓ π∩␈ε∃C:8:4,␈↓ λ	␈ε∃'␈↓ λ+␈ε∃=␈↓ λM␈ε∃0.0000␈↓ 	D␈ε∃'␈↓ 	f␈ε∃)␈↓ 
λ␈ε∃;
␈β¬w␈↓ ↓H␈ε∃WRITELN␈↓ αP␈ε∃;
␈βε∨␈↓ ↓H␈ε∃(*␈↓ ↓{␈ε∃SOLUTION␈↓ β∀␈ε∃OF␈↓ βG␈ε∃EQUATION*)
␈βεF␈↓ ↓H␈ε∃IF␈↓ ↓{␈ε∃A␈↓ α≥␈ε∃=␈↓ α?␈ε∃0␈↓ αr␈ε∃THEN␈↓ βG␈ε∃(*␈↓ βz␈ε∃LINEAR␈↓ ∧q␈ε∃EQUATION␈↓ ε
␈ε∃*)
␈βεn␈↓ α␈ε∃IF␈↓ α?␈ε∃B␈↓ αa␈ε∃=␈↓ ββ␈ε∃0␈↓ β%␈ε∃THEN␈↓ ∧␈ε∃(*␈↓ ∧>␈ε∃DEGENERATE␈↓ ¬y␈ε∃EQUATION␈↓ π∩␈ε∃C␈↓ π4␈ε∃=␈↓ πV␈ε∃0␈↓ πx␈ε∃*)
␈βπ∃␈↓ αP␈ε∃IF␈↓ ββ␈ε∃C␈↓ β%␈ε∃=␈↓ βG␈ε∃0␈↓ βi␈ε∃THEN
␈βπ=␈↓ β∀␈ε∃WRITELN␈↓ ∧≤␈ε∃('␈↓ ∧O␈ε∃INFINITELY␈↓ ε
␈ε∃MANY␈↓ ε←␈ε∃SOLUTIONS'␈↓ λ~␈ε∃)
␈βπe␈↓ αP␈ε∃ELSE␈↓ β%␈ε∃WRITELN␈↓ ∧-␈ε∃('␈↓ ∧`␈ε∃NO␈↓ ¬∪␈ε∃SOLUTIONS'␈↓ εN␈ε∃)
␈βλ␈↓ α␈ε∃ELSE␈↓ αa␈ε∃(*␈↓ β∀␈ε∃REAL␈↓ βi␈ε∃LINEAR␈↓ ∧`␈ε∃EQUATION␈↓ ¬y␈ε∃B␈↓ ε≠␈ε∃X␈↓ ε=␈ε∃+␈↓ ε←␈ε∃C␈↓ π↓␈ε∃=␈↓ π#␈ε∃0␈↓ πE␈ε∃*)
␈βλ2␈↓ εp␈ε7␈
␈βλ4␈↓ αa␈ε∃WRITELN␈↓ βi␈ε∃('␈↓ ∧≤␈ε∃SINGLE␈↓ ¬∪␈ε∃SOLUTION␈↓ ε,␈ε∃:',(␈↓ π⊃␈ε∃C/B):8:4␈↓ λ*␈ε∃)
␈βλ[␈↓ ↓H␈ε∃ELSE␈↓ α≥␈ε∃(*␈↓ αP␈ε∃PROPER␈↓ βG␈ε∃QUADRATIC␈↓ ∧q␈ε∃EQUATION␈↓ ε
␈ε∃*)
␈β	β␈↓ α␈ε∃BEGIN
␈β	)␈↓ ∧≤␈ε7␈
␈β	+␈↓ α␈ε∃DISCR␈↓ ββ␈ε∃:=␈↓ β6␈ε∃SQR(B)␈↓ ∧=␈ε∃4.0*A*C␈↓ ¬E␈ε∃;
␈β	R␈↓ α␈ε∃IF␈↓ α?␈ε∃DISCR␈↓ β%␈ε∃=␈↓ βG␈ε∃0␈↓ βi␈ε∃THEN
␈β	x␈↓ πg␈ε7␈
␈β	z␈↓ αP␈ε∃WRITELN␈↓ βX␈ε∃('␈↓ ∧␈ε∃TWO␈↓ ∧O␈ε∃IDENTICAL␈↓ ¬y␈ε∃SOLUTIONS␈↓ π#␈ε∃:',(␈↓ λλ␈ε∃B/(2.0*A)␈α↓):8:4␈↓ 
λ␈ε∃)
␈β
!␈↓ α␈ε∃ELSE
␈β
I␈↓ αP␈ε∃IF␈↓ ββ␈ε∃DISCR␈↓ βi␈ε∃>␈↓ ∧␈ε∃0␈↓ ∧-␈ε∃THEN
␈β
q␈↓ β%␈ε∃BEGIN
␈β_␈↓ β%␈ε∃WRITELN␈↓ ∧-␈ε∃('␈↓ ∧`␈ε∃TWO␈↓ ¬$␈ε∃REAL␈↓ ¬y␈ε∃SOLUTIONS␈↓ π#␈ε∃:',
␈β>␈↓ ∧≤␈ε7␈␈↓ ∧N␈ε7␈
␈β@␈↓ βz␈ε∃((␈↓ ∧=␈ε∃B␈↓ ∧o␈ε∃SQRT(␈α↓DISCR))/(2.0*A)):8:4␈↓ λ*␈ε∃);
␈βg␈↓ β%␈ε∃WRITELN␈↓ ∧-␈ε∃('␈↓ εp␈ε∃',
␈β
␈↓ ∧≤␈ε7␈
␈β∂␈↓ βz␈ε∃((␈↓ ∧=␈ε∃B+SQRT(DISCR))/(2.0*A)):8:4␈↓ λ→␈ε∃)
␈β7␈↓ β%␈ε∃END
␈β↑␈↓ αP␈ε∃ELSE
␈β
ε␈↓ β∀␈ε∃BEGIN
␈β
-␈↓ β∀␈ε∃WRITELN␈↓ ∧≤␈ε∃('␈↓ ∧O␈ε∃TWO␈↓ ¬∪␈ε∃COMPLEX␈↓ ε≠␈ε∃SOLUTIONS␈↓ πE␈ε∃:',
␈β
S␈↓ βX␈ε7␈␈↓ πf␈ε7␈
␈β
U␈↓ βG␈ε∃(␈↓ βy␈ε∃B/(2.0*A)):8:4,'␈↓ ε~␈ε∃+␈↓ ε<␈ε∃I␈↓ ε↑␈ε∃',(SQRT(␈↓ λλ␈ε∃DISCR)/(2.0*A)):8:4);
␈β
⎇␈↓ β∀␈ε∃WRITELN␈↓ ∧≤␈ε∃('␈↓ πE␈ε∃',
␈β∞"␈↓ βX␈ε7␈␈↓ πf␈ε7␈
␈β∞$␈↓ βG␈ε∃(␈↓ βy␈ε∃B/(2.0*A)):8:4,'␈↓ ε~␈ε∃-␈↓ ε<␈ε∃I␈↓ ε↑␈ε∃',(SQRT(␈↓ λλ␈ε∃DISCR)/2.0*A):8:4);
␈β∞L␈↓ β∀␈ε∃END
␈β∞s␈↓ α␈ε∃END
␈β∂≠␈↓ ↓H␈ε∃END.
␈β⊃_

␈β↓H␈↓ ↓$␈∧↓H↓$α
u
␈β↓J␈↓ ↓$␈∧↓J↓$Hα␈↓ "␈∧↓J"Hα␈↓ ↔␈∧↓J↔Hα
␈β↓V␈↓ ∧U␈ε>C␈α↓o␈α␈ndi␈α␈tio␈α␈nal␈α∞C␈α↓o␈α␈mm␈α␈a␈α↓n␈α␈ds
␈β↓\␈↓ K␈ε"59
␈βα⊃␈↓ ↓$␈∧α⊃↓$α
u
␈βαO␈↓ ↓H␈ε2Example
␈ββ⊂␈↓ α␈ε"This␈α
program␈αreads␈α
the␈α
iden␈α␈ti|cation␈αn␈α␈um␈α␈bers␈α
and␈α
scores␈αof␈α
one␈α
h␈α␈undred␈α
pla␈α␈y␈α␈ers
␈ββ;␈↓ ↓H␈ε"in␈αa␈αtournamen␈α␈t,␈αand␈α
prin␈α␈ts␈αout␈αthe␈αn␈α␈um␈α␈bers␈αand␈α
scores␈αof␈αthe␈αt␈α␈w␈α␈o␈α
best␈αpla␈α␈y␈α␈ers.␈α⊂(In
␈ββf␈↓ ↓H␈ε"case␈αof␈αties,␈αit␈αtreats␈αthe␈α|rst␈αpla␈α␈y␈α␈er␈αas␈αthe␈αwinner.)
␈β∧9␈↓ ↓Y␈ε∃PROGRAM␈↓ αa␈ε∃TOPTWO␈↓ βX␈ε∃;
␈β∧a␈↓ ↓H␈ε∃VAR␈↓ α␈ε∃I,␈↓ α?␈ε∃SCORE,␈↓ β6␈ε∃BEST,␈↓ ∧≤␈ε∃SECOND,␈↓ ¬$␈ε∃NUMBER,␈↓ ε,␈ε∃NUMBER1,␈↓ πE␈ε∃NUMBER2:␈↓ λ↑␈ε∃INTEGER;
␈β¬0␈↓ ↓H␈ε∃BEGIN
␈β¬X␈↓ ↓H␈ε∃BEST␈↓ α≥␈ε∃:=␈↓ αa␈ε∃-␈↓ ββ␈ε∃1␈↓ β%␈ε∃;␈↓ βX␈ε∃SECOND␈↓ ∧O␈ε∃:=␈↓ ¬∪␈ε∃-␈↓ ¬5␈ε∃1␈↓ ¬W␈ε∃;
␈β¬␈␈↓ ↓H␈ε∃NUMBER1␈↓ αP␈ε∃:=␈↓ ββ␈ε∃0␈↓ β%␈ε∃;␈↓ βG␈ε∃NUMBER2␈↓ ∧O␈ε∃:=␈↓ ¬α␈ε∃0␈↓ ¬$␈ε∃;
␈βε'␈↓ ↓H␈ε∃FOR␈↓ α␈ε∃I␈↓ α.␈ε∃:=␈↓ αa␈ε∃1␈↓ ββ␈ε∃TO␈↓ β6␈ε∃100␈↓ βz␈ε∃DO
␈βεO␈↓ α␈ε∃BEGIN
␈βεv␈↓ α␈ε∃READ␈↓ αa␈ε∃(NUMBER␈↓ βi␈ε∃,␈↓ ∧␈ε∃SCORE)␈↓ ¬α␈ε∃;
␈βπ≡␈↓ α␈ε∃IF␈↓ α?␈ε∃SCORE␈↓ β%␈ε∃>␈↓ βG␈ε∃SECOND␈↓ ∧>␈ε∃THEN
␈βπE␈↓ αP␈ε∃IF␈↓ ββ␈ε∃SCORE␈↓ βi␈ε∃>␈↓ ∧␈ε∃BEST␈↓ ∧`␈ε∃THEN
␈βπm␈↓ β∀␈ε∃BEGIN
␈βλ∃␈↓ β∀␈ε∃SECOND␈↓ ∧␈ε∃:=␈↓ ∧>␈ε∃BEST␈↓ ¬∪␈ε∃;
␈βλ<␈↓ β∀␈ε∃BEST␈↓ βi␈ε∃:=␈↓ ∧≤␈ε∃SCORE␈↓ ¬α␈ε∃;
␈βλd␈↓ β∀␈ε∃NUMBER2␈↓ ∧≤␈ε∃:=␈↓ ∧O␈ε∃NUMBER1␈↓ ¬W␈ε∃;
␈β	␈↓ β∀␈ε∃NUMBER1␈↓ ∧≤␈ε∃:=␈↓ ∧O␈ε∃NUMBER␈↓ ¬F␈ε∃;
␈β	3␈↓ β∀␈ε∃END
␈β	[␈↓ αP␈ε∃ELSE
␈β
α␈↓ β∀␈ε∃BEGIN
␈β
*␈↓ β∀␈ε∃SECOND␈↓ ∧␈ε∃:=␈↓ ∧>␈ε∃SCORE␈↓ ¬$␈ε∃;
␈β
Q␈↓ β∀␈ε∃NUMBER2␈↓ ∧≤␈ε∃:=␈↓ ∧O␈ε∃NUMBER
␈β
y␈↓ β∀␈ε∃END␈↓ βX␈ε∃;
␈β!␈↓ α␈ε∃END␈↓ αP␈ε∃;
␈βH␈↓ ↓H␈ε∃WRITELN(NUMBER1,␈↓ βi␈ε∃BEST,␈↓ ∧O␈ε∃NUMBER2,␈↓ ¬h␈ε∃SECOND)
␈βp␈↓ ↓H␈ε∃END.
␈β
p␈↓ ↓H␈ε2Exercise
␈β∞6␈↓ α␈ε$In␈αλthe␈αλgam␈α↓e␈απo␈α↓f␈αλc␈α␈hess,␈αλthe␈απqueen␈απis␈αλa␈αλpie␈α␈ce␈απwhich␈απcan␈αλm␈ααo␈α␈v␈α␈e␈αλh␈α↓oriz␈α␈ont␈α␈a␈α↓l␈α␈ly,␈αλv␈α␈erti␈α␈cal␈α␈ly,␈αλor␈αλdiagona␈α↓l␈α␈ly.
␈β∞a␈↓ ↓H␈ε$W␈α⎇ri␈α␈te␈α
a␈αprog␈α↓ram␈αto␈αread,␈α
fro␈α↓m␈αthe␈α
te␈α␈rm␈α↓i␈α␈na␈α↓l␈α␈,␈α
the␈αposi␈α␈tion␈αof␈αthe␈α
queen␈α
(the␈αn␈α␈um␈α␈ber␈αof␈αthe␈α
ro␈α␈w␈αand
␈β∂
␈↓ ↓H␈ε$the␈α
n␈α␈umber␈αof␈αthe␈αc␈α␈o␈α↓l␈α␈um␈α↓n)␈αand␈αto␈αpr␈α␈in␈α␈t␈αa␈αdi␈α␈ag␈α↓ram␈αsh␈α↓owi␈α␈ng␈αt␈α␈o␈αwhi␈α␈ch␈αsqua␈α↓re␈α␈s␈αthe␈αquee␈α␈n␈αcan␈αm␈ααo␈α␈v␈α␈e.
␈β∂8␈↓ ↓H␈ε$F␈α⎇o␈α↓r␈α
e␈α␈xa␈α↓mple␈α␈,␈α
such␈α
a␈α
diagra␈α↓m␈α
sh␈α↓owi␈α␈ng␈αthe␈α	po␈α↓ss␈α␈ibl␈α␈e␈α
q␈α↓ue␈α␈en␈α
m␈α↓ov␈α␈es␈α
from␈αro␈α␈w␈α
4␈α↓,␈α	column␈α3␈α
is␈α␈:
␈β⊃≥

␈β↓H␈↓ ↓$␈∧↓H↓$α
u
␈β↓J␈↓ ↓$␈∧↓J↓$Hα␈↓ α→␈∧↓Jα→Hα␈↓ ↔␈∧↓J↔Hα
␈β↓V␈↓ ¬P␈ε>C␈α↓o␈α␈ndi␈α␈tio␈α␈nal␈α∞C␈α↓o␈α␈mm␈α␈a␈α↓n␈α␈ds
␈β↓\␈↓ ↓M␈ε"60
␈βα⊃␈↓ ↓$␈∧α⊃↓$α
u
␈βαT␈↓ ↓H␈∧αT↓Hα
-
␈βαU␈↓ ↓H␈∧αU↓Hλα␈↓ s␈∧αUsλα
␈βα\␈↓ ↓H␈∧α\↓Hα
-
␈βαk␈↓ αP␈ε∃..*..*..
␈ββ∪␈↓ αP␈ε∃*.*.*...
␈ββ;␈↓ αP␈ε∃.***....
␈ββb␈↓ αP␈ε∃**Q*****
␈β∧
␈↓ αP␈ε∃.***....
␈β∧1␈↓ αP␈ε∃*.*.*...
␈β∧Y␈↓ αP␈ε∃..*..*..
␈β¬↓␈↓ αP␈ε∃..*...*.
␈β¬<␈↓ ↓H␈∧¬<↓Hα
-
␈β¬=␈↓ ↓H␈∧¬=↓Hλα␈↓ s␈∧¬=sλα
␈β¬D␈↓ ↓H␈∧¬D↓Hα
-
␈β¬i␈↓ ↓H␈ε2Exercise
␈βε→␈↓ α␈ε$W␈α⎇ri␈α␈te␈α	a␈α
program␈α
to␈α	ke␈α␈ep␈α	track␈α	of␈α	a␈α
che␈α␈cki␈α␈ng␈α
acc␈α␈o␈α↓un␈α␈t.␈αL␈α↓e␈α␈t␈α	the␈α	ini␈α␈ti␈α␈a␈α↓l␈αλba␈α↓l␈α␈a␈α↓nc␈α␈e␈α	be␈α	z␈α␈ero.␈α
The␈α	|rst
␈βεD␈↓ ↓H␈ε$n␈α␈um␈α␈ber␈αre␈α␈a␈α↓d␈αin␈αi␈α␈s␈αthe␈αto␈α↓t␈α␈a␈α↓l␈αn␈α␈umbe␈α␈r␈αof␈α
c␈α␈hec␈α␈ks␈αand␈αdeposi␈α␈ts.␈α∩The␈αre␈α␈m␈α↓aini␈α␈ng␈αda␈α↓t␈α␈a␈α
are␈αthe␈αam␈α↓ounts
␈βεo␈↓ ↓H␈ε$of␈α
c␈α␈hec␈α␈ks␈α
(negativ␈α␈e␈α	n␈α␈umber␈α␈s)␈α
and␈α
deposi␈α␈ts␈α
(posi␈α␈tiv␈α␈e␈α	n␈α␈umbers).␈α
F␈α⎇o␈α↓r␈α	each␈α	da␈α↓t␈α␈um␈α↓,␈α	the␈α	prog␈α↓ram␈α
sh␈α↓oul␈α␈d
␈βπ~␈↓ ↓H␈ε$pri␈α␈n␈α␈t␈α
the␈α
datum␈α
a␈α↓nd␈α
the␈αba␈α↓l␈α␈ance␈α
a$er␈α
proce␈α␈ssi␈α␈ng␈α∞the␈αda␈α↓tum␈α
by␈α
a␈α↓ddi␈α␈ng␈α
it␈α
to␈α
the␈α
balanc␈α␈e.␈α⊗The␈α␈n
␈βπF␈↓ ↓H␈ε$c␈α␈ha␈α↓nge␈α
the␈α	pro␈α↓gram␈α↓,␈α	to␈αi␈α␈m␈α↓pose␈α
se␈α␈vic␈α␈e␈α
charges␈α
of␈↓ εh␈ε$0.05␈α
per␈α
deposi␈α␈t␈αand␈↓ 	⊃␈ε$0.10␈αpe␈α␈r␈α
chec␈α␈k.
␈βπG␈↓ εY␈ε⊗$␈↓ 	α␈ε⊗$
␈βλ↓␈↓ ↓H␈ε2Exercise
␈βλ2␈↓ α␈ε$Sam␈α↓e␈απas␈αλabov␈α␈e,␈απbut␈αλw␈α␈aivi␈α␈ng␈αλservi␈α␈ce␈απcharges␈αλon␈απa␈α↓c␈α␈coun␈α␈ts␈αλwhi␈α␈ch␈αλha␈α␈v␈α␈e␈αλa␈αλbal␈α␈a␈α↓nc␈α␈e␈αλof␈αλat␈απleast␈↓ ∨␈ε$3␈α↓00.00
␈βλ3␈↓ ⊂␈ε⊗$
␈βλ]␈↓ ↓H␈ε$a$er␈α
the␈α	deposit␈α
or␈α
che␈α␈ck.
␈β	→␈↓ ↓H␈ε2Exercise
␈β	B␈↓ α␈ε$Sam␈α↓e␈α
as␈α
abov␈α␈e,␈α	but␈α
ta␈α↓ki␈α␈ng␈αi␈α␈n␈α␈to␈αacc␈α␈o␈α↓un␈α␈t␈α
o␈α␈ve␈α␈rdra$s,␈α
acc␈α␈o␈α↓rdi␈α␈ng␈αto␈α
the␈α
foll␈α␈owi␈α␈ng␈αrul␈α␈es:
␈β	f␈↓ ↓[␈ε8∂␈↓ ↓}␈ε$Se␈α␈rvic␈α␈e␈α	charges␈α	of␈↓ ∧β␈ε$0.05␈α
pe␈α␈r␈α	deposit␈α␈,␈↓ ¬v␈ε$0␈α↓.␈α␈1␈α↓0␈α	per␈α	c␈α␈heck␈α	paid,␈α	w␈α␈aiv␈α␈ed␈α	i␈α␈f␈α
the␈αλba␈α↓l␈α␈ance,␈α	be␈α␈fo␈α↓re␈αλ|g␈α↓uri␈α␈ng
␈β	g␈↓ βt␈ε⊗$␈↓ ¬g␈ε⊗$
␈β

␈↓ α4␈ε$i␈α␈n␈α
the␈α
ser␈α␈v␈α↓i␈α␈ce␈α
c␈α␈harg␈α↓e␈α␈,␈α
i␈α␈s␈αat␈α
l␈α␈east␈↓ ¬s␈ε$3␈α↓00.
␈β
␈↓ ¬d␈ε⊗$
␈β
.␈↓ ↓[␈ε8∂␈↓ ↓}␈ε$Penal␈α␈t␈α␈y␈α
c␈α␈ha␈α↓r␈α␈g␈α↓e␈αλo␈α↓f␈↓ β}␈ε$3.00␈α
pe␈α␈r␈α	ov␈α␈e␈α␈rdra␈α↓$␈α	(a␈α	che␈α␈ck␈α	that␈α	woul␈α␈d,␈α	if␈α	c␈α␈a␈α↓she␈α␈d,␈α	le␈α␈av␈α␈e␈α	t␈α␈he␈α	balance␈αλnega␈α↓ti␈α␈v␈α␈e,
␈β
/␈↓ βo␈ε⊗$
␈β
R␈↓ α4␈ε$i␈α␈ncl␈α␈uding␈α
servi␈α␈ce␈α
c␈α␈ha␈α↓rge␈α␈s)␈α↓.
␈β
v␈↓ ↓[␈ε8∂␈↓ ↓}␈ε$Che␈α␈cks␈αwhic␈α␈h␈αwould␈αl␈α␈ea␈α␈ve␈αa␈α
balance␈αles␈α␈s␈α
than␈α-␈↓ π∃␈ε$5␈α↓0.␈α␈0␈α↓0␈αa␈α↓r␈α␈e␈αn␈α↓ot␈α
ho␈α↓n␈α↓ore␈α␈d␈α
(i␈α␈.e␈α␈.␈α∀pai␈α␈d)␈α↓.␈α∪T␈α⎇a␈α↓k␈α␈e␈αi␈α␈n␈α␈to
␈β
w␈↓ πε␈ε⊗$
␈β~␈↓ α4␈ε$acc␈α␈ount␈α
the␈αe␈α␈{ect␈α
o␈α↓f␈αse␈α␈rvic␈α␈e␈αc␈α␈ha␈α↓rges␈α
in␈αma␈α↓ki␈α␈ng␈αthis␈α
deci␈α␈sion,␈α
but␈αremem␈α␈ber␈αto␈αcharge␈α
o␈α↓nl␈α␈y
␈β>␈↓ α4␈ε$the␈α	penalt␈α␈y,␈α
and␈α
n␈α↓ot␈α
the␈α
servi␈α␈ce␈α
c␈α␈harg␈α↓e␈α␈,␈α
for␈αa␈α
che␈α␈ck␈α
whic␈α␈h␈α
is␈α
n␈α↓ot␈α
pa␈α↓i␈α␈d.
␈βi␈↓ ↓H␈ε$W␈α⎇arni␈α␈ng␈α↓:␈α∩It␈α∂i␈α␈s␈α∂easy␈α∂t␈α␈o␈α∂m␈α↓ak␈α␈e␈α∂a␈α∞m␈α↓i␈α␈sta␈α↓k␈α␈e␈α∞i␈α␈n␈α∂prog␈α↓r␈α␈a␈α↓mm␈α↓i␈α␈ng␈α∂the␈α∞a␈α↓bo␈α␈v␈α␈e␈α∂pol␈α␈ic␈α␈y␈α↓.␈α~Re␈α␈m␈α↓e␈α␈mber␈α∞that␈α∂the
␈β∀␈↓ ↓H␈ε$program␈αm␈α␈ust␈αacc␈α␈ept␈α
deposits␈α
ev␈α␈en␈αt␈α␈o␈αov␈α␈erdra␈α␈wn␈αacc␈α␈o␈α↓un␈α␈ts,␈α
and␈αthat␈αthe␈α
servi␈α␈ce␈α
charge␈αon␈αa␈αc␈α␈hec␈α␈k
␈β?␈↓ ↓H␈ε$may␈α
o␈α␈ve␈α␈rdraw␈α
the␈α
ac␈α␈coun␈α␈t.␈α∞R␈α␈ead␈α
the␈α
rule␈α␈s␈ε1␈α
ve␈α␈ry␈ε$␈α
careful␈α␈ly.␈α
T␈α}ry␈α
to␈α
think␈α
li␈α␈k␈α␈e␈α
a␈α
ba␈α↓nk␈α␈er␈α␈.
␈β⊃_

␈β↓H␈↓ ↓$␈∧↓H↓$α
u
␈β↓J␈↓ ↓$␈∧↓J↓$Hα␈↓ "␈∧↓J"Hα␈↓ ↔␈∧↓J↔Hα
␈β↓V␈↓ ∧s␈ε>Lo␈α␈gical␈α∞C␈α↓o␈α␈nn␈α␈e␈α↓cti␈α␈v␈α␈es
␈β↓\␈↓ K␈ε"61
␈βα⊃␈↓ ↓$␈∧α⊃↓$α
u
␈βαV␈↓ ↓H␈ε>Lo␈α␈gical␈α∞C␈α↓o␈α␈nn␈α␈e␈α↓cti␈α␈v␈α␈es.
␈ββ≠␈↓ α␈ε"A␈α␈t␈αtimes,␈α
w␈α␈e␈αw␈α␈an␈α␈t␈α
to␈αexecute␈α
a␈αcommand␈α
only␈αwhen␈α
a␈αcom␈α␈bination␈α
of␈α
conditions
␈ββF␈↓ ↓H␈ε"is␈αsatis|ed.␈α⊂T␈α⎇o␈αexecute␈↓ ∧;␈ε6C␈↓ ∧]␈ε"only␈αwhen␈αboth␈↓ ε↑␈ε6E␈↓ π∞␈ε"and␈↓ πT␈ε6E␈↓ λ∧␈ε"are␈αtrue,␈αw␈α␈e␈αmigh␈α␈t␈αwrite
␈ββR␈↓ εq␈ε%1␈↓ πg␈ε%2
␈β∧ ␈↓ β⊂␈ε6E␈↓ ∧↑␈ε6E␈↓ ¬s␈ε6C
␈β∧"␈↓ αX␈ε5IF␈↓ βG␈ε5THEN␈α∪I␈α␈F␈↓ ¬∃␈ε5THEN
␈β∧,␈↓ β#␈ε%1␈↓ ∧q␈ε%2
␈β∧y␈↓ ↓H␈ε"W␈α⎇e␈αma␈α␈y␈αm␈α↓ore␈αsimply␈αwrite␈αa␈αsingle␈αconditional␈αcommand␈αusing␈αa␈αcondition,␈↓ 
v␈ε6E␈↓ $␈ε"AND
␈β¬ε␈↓ 	␈ε%1
␈β¬$␈↓ ↓H␈ε6E␈↓ ↓k␈ε",␈αwhich␈αis␈αonly␈αtrue␈αif␈αboth␈↓ ¬∨␈ε6E␈↓ ¬N␈ε"and␈↓ ε∀␈ε6E␈↓ εD␈ε"are␈αtrue:
␈β¬1␈↓ ↓[␈ε%2␈↓ ¬2␈ε%1␈↓ ε'␈ε%2
␈β¬}␈↓ β⊂␈ε6E␈↓ ∧∪␈ε6E␈↓ ¬(␈ε6C
␈βε␈↓ αX␈ε5IF␈↓ βG␈ε5AND␈↓ ∧I␈ε5THEN
␈βε
␈↓ β#␈ε%1␈↓ ∧&␈ε%2
␈βεY␈↓ α␈ε"Similarly,␈αto␈αexecute␈↓ ∧[␈ε6C␈↓ ∧⎇␈ε"when␈αeither␈αone␈αof␈↓ π)␈ε6E␈↓ πX␈ε"and␈↓ λ≥␈ε6E␈↓ λL␈ε"(or␈αboth)␈αis␈αtrue,␈αinstead␈αof
␈βεe␈↓ π<␈ε%1␈↓ λ0␈ε%2
␈βπ∧␈↓ ↓H␈ε"writing
␈βπA␈↓ ββ␈ε7E␈↓ ∧ ␈ε7C
␈βπC␈↓ αP␈ε∃IF␈↓ βK␈ε∃THEN
␈βπL␈↓ β+␈ε&1
␈βπh␈↓ βX␈ε7E␈↓ ∧u␈ε7C
␈βπj␈↓ αP␈ε∃ELSE␈↓ β%␈ε∃IF␈↓ ∧ ␈ε∃THEN
␈βπt␈↓ ∧␈ε&2
␈βλ)␈↓ ↓H␈ε"w␈α␈e␈α
could␈α
use␈α
the␈α
condition␈↓ ∧|␈ε6E␈↓ ¬-␈ε"OR␈↓ ¬r␈ε6E␈↓ ε⊗␈ε",␈α∞which␈α
is␈α
true␈α
if␈α
either␈α
(or␈α
both)␈α
of␈↓ 
Y␈ε6E␈↓ 
␈ε"and␈↓ Q␈ε6E
␈βλ5␈↓ ¬∂␈ε%1␈↓ ε¬␈ε%2␈↓ 
l␈ε%1␈↓ d␈ε%2
␈βλT␈↓ ↓H␈ε"is␈αtrue,␈αto␈αwrite
␈β	.␈↓ β⊂␈ε6E␈↓ ∧␈ε6E␈↓ ¬∃␈ε6C
␈β	0␈↓ αX␈ε5IF␈↓ βG␈ε5OR␈↓ ∧6␈ε5THEN
␈β	:␈↓ β#␈ε%1␈↓ ∧∪␈ε%2
␈β
λ␈↓ ↓H␈ε"The␈α∂prin␈α␈ting␈α⊂command␈α⊂used␈α⊂in␈α⊂dra␈α␈wing␈α⊂the␈α∂ro␈α↓ok␈α⊂m␈α↓o␈α␈v␈α␈es␈α⊂on␈α⊂the␈α⊂chessboard␈α⊂in␈α∂the
␈β
3␈↓ ↓H␈ε"previous␈αsection␈αcould␈αbe␈αwritten:
␈β
q␈↓ αP␈ε∃IF␈↓ ββ␈ε∃(R␈↓ β6␈ε∃=␈↓ βX␈ε∃ROOKROW)␈↓ ∧q␈ε∃AND␈↓ ¬5␈ε∃(C␈↓ ¬h␈ε∃=␈↓ ε
␈ε∃ROOKCOL)␈↓ π#␈ε∃THEN
␈β→␈↓ βX␈ε∃WRITE('R')
␈βA␈↓ αP␈ε∃ELSE␈↓ β%␈ε∃IF␈↓ βX␈ε∃(R␈↓ ∧␈ε∃=␈↓ ∧-␈ε∃ROOKROW)␈↓ ¬F␈ε∃OR␈↓ ¬y␈ε∃(C␈↓ ε,␈ε∃=␈↓ εN␈ε∃ROOKCOL)␈↓ πg␈ε∃THEN
␈βh␈↓ βX␈ε∃WRITE('*')
␈β⊂␈↓ αP␈ε∃ELSE␈↓ βX␈ε∃WRITE('.')
␈βO␈↓ ↓H␈ε"The␈αparen␈α␈theses␈αin␈α(␈↓ ∧	␈ε6E␈↓ ∧-␈ε")␈↓ ¬
␈ε"(␈↓ ¬⊗␈ε6E␈↓ ¬:␈ε"),␈α
or␈α(␈↓ ε∃␈ε6E␈↓ ε9␈ε")␈↓ πβ␈ε"(␈↓ π∂␈ε6E␈↓ π3␈ε"),␈αare␈αessen␈α␈tial␈α
if␈↓ 	C␈ε6E␈↓ 	s␈ε"and␈↓ 
9␈ε6E␈↓ 
i␈ε"are␈αm␈α↓ore
␈βQ␈↓ ∧E␈ε5AND␈↓ εQ␈ε5OR
␈β[␈↓ ∧≤␈ε%1␈↓ ¬)␈ε%2␈↓ ε(␈ε%1␈↓ π"␈ε%2␈↓ 	V␈ε%1␈↓ 
L␈ε%2
␈βz␈↓ ↓H␈ε"than␈αa␈αsingle␈αv␈α}ariable␈αor␈αconstan␈α␈t.
␈β
&␈↓ α␈ε"An␈α↓other␈α
logical␈α
connectiv␈α␈e␈α∞is␈↓ ε≠␈ε";␈α
the␈α
condition␈↓ λV␈ε6E␈↓ λ|␈ε"is␈α
true␈α
if␈↓ 
∩␈ε6E␈↓ 
8␈ε"is␈α
false,␈α
and
␈β
(␈↓ ¬b␈ε5NOT␈↓ λ⊂␈ε5NOT
␈β
Q␈↓ ↓H␈ε"false␈αif␈↓ α<␈ε6E␈↓ αa␈ε"is␈αtrue.␈α⊂T␈α⎇o␈αdivide␈αI␈αby␈α2␈αif␈αit␈αis␈αan␈αev␈α␈en␈αn␈α␈um␈α␈ber,␈αone␈αcould␈αsa␈α␈y
␈β∞-␈↓ αX␈ε5IF␈α∩NOT␈α∪ODD(I␈α␈)␈α∪THEN␈α∪I␈α∪:␈α␈=␈α∪I␈α∪DIV␈α∪2
␈β∂ε␈↓ α␈ε"In␈α∂general,␈α∂if␈↓ βh␈ε6E␈↓ ∧≠␈ε"and␈↓ ∧c␈ε6E␈↓ ¬⊗␈ε"are␈ε/␈α∞Bo␈α↓olean␈α∂expressions␈↓ λ∨␈ε"(expressions␈α∞wh␈α↓ose␈α∂v␈α}alues␈α∞are
␈β∂∩␈↓ β{␈ε%1␈↓ ∧v␈ε%2
␈β∂1␈↓ ↓H␈ε"true␈αor␈αfalse),␈αthen
␈β⊃∨

␈β↓H␈↓ ↓$␈∧↓H↓$α
u
␈β↓J␈↓ ↓$␈∧↓J↓$Hα␈↓ α→␈∧↓Jα→Hα␈↓ ↔␈∧↓J↔Hα
␈β↓V␈↓ ¬n␈ε>Lo␈α␈gical␈α∞C␈α↓o␈α␈nn␈α␈e␈α↓cti␈α␈v␈α␈es
␈β↓\␈↓ ↓M␈ε"62
␈βα⊃␈↓ ↓$␈∧α⊃↓$α
u
␈βαN␈↓ αP␈ε7E␈↓ βF␈ε7E
␈βαP␈↓ βα␈ε∃AND
␈βαY␈↓ αa␈ε&1␈↓ βW␈ε&2
␈βαu␈↓ αP␈ε7E␈↓ β5␈ε7E
␈βαw␈↓ βα␈ε∃OR
␈ββ↓␈↓ αa␈ε&1␈↓ βF␈ε&2
␈ββ≥␈↓ β∀␈ε7E
␈ββ∨␈↓ αP␈ε∃NOT
␈ββ)␈↓ β%␈ε&1
␈ββ←␈↓ ↓H␈ε"are␈α
also␈α∞Bo␈α↓olean␈α∞expressions.␈α∃The␈α∞|rst␈α
is␈α∞true␈α∞only␈α∞when␈↓ λd␈ε(␈↓ 	~␈ε"and␈↓ 	a␈ε(␈↓ 
↔␈ε"are␈α∞both␈α
true.
␈ββk␈↓ λ{␈ε%1␈↓ 	x␈ε%2
␈β∧
␈↓ ↓H␈ε"The␈αsecond␈αis␈αfalse␈αonly␈αwhen␈↓ ¬&␈ε(␈↓ ¬Z␈ε"and␈↓ ε∨␈ε(␈↓ εR␈ε"are␈αboth␈αfalse.␈α⊂The␈αthird␈αis␈αtrue␈αonly␈αwhen
␈β∧⊗␈↓ ¬=␈ε%1␈↓ ε6␈ε%2
␈β∧5␈↓ ↓H␈ε(␈↓ ↓{␈ε"is␈αfalse.␈α⊂Am␈α␈biguous␈αexpressions␈αsh␈α↓ould␈αbe␈αfully␈αparen␈α␈thesized,␈αlik␈α␈e
␈β∧A␈↓ ↓←␈ε%1
␈β¬⊂␈↓ αX␈ε6A␈↓ β<␈ε"((␈↓ βT␈ε6B␈↓ βm␈ε")␈↓ ∧W␈ε"(␈↓ ∧c␈ε6C␈↓ ∧z␈ε"))
␈β¬∩␈↓ ββ␈ε5OR␈↓ ∧␈ε5AND
␈β¬j␈↓ ↓H␈ε"rather␈αthan
␈βεE␈↓ αX␈ε"(␈↓ αd␈ε6A␈↓ α|␈ε")␈↓ βT␈ε"(␈↓ β`␈ε6B␈↓ βy␈ε")␈↓ ∧c␈ε"(␈↓ ∧o␈ε6C␈↓ ¬ε␈ε")
␈βεG␈↓ β≠␈ε5OR␈↓ ∧_␈ε5AND
␈βπ?␈↓ ↓H␈ε2Example
␈βπk␈↓ α␈ε"T␈α⎇o␈αprin␈α␈t␈αthe␈α|gures␈αillustrated:
␈βλ*␈↓ ↓H␈∧λ*↓Hα
-
␈βλ,␈↓ ↓H␈∧λ,↓Hλα␈↓ s␈∧λ,sλα
␈βλ3␈↓ ↓H␈∧λ3↓Hα
-
␈βλB␈↓ αP␈ε∃*****
␈βλj␈↓ αP␈ε∃*␈↓ αr␈ε∃***
␈β	⊃␈↓ αP␈ε∃*****
␈β	9␈↓ αP␈ε∃*****
␈β	`␈↓ αP␈ε∃*****
␈β
≤␈↓ ↓H␈∧
≤↓Hα
-
␈β
≥␈↓ ↓H␈∧
≥↓Hλα␈↓ s␈∧
≥sλα
␈β
$␈↓ ↓H␈∧
$↓Hα
-
␈β
G␈↓ αP␈ε∃FOR␈↓ β∀␈ε∃R:=1␈↓ βi␈ε∃TO␈↓ ∧≤␈ε∃5␈↓ ∧>␈ε∃DO
␈β
n␈↓ ββ␈ε∃BEGIN
␈β⊗␈↓ ββ␈ε∃FOR␈↓ βG␈ε∃C:=1␈↓ ∧≤␈ε∃TO␈↓ ∧O␈ε∃5␈↓ ∧q␈ε∃DO
␈β=␈↓ β6␈ε∃IF␈↓ βi␈ε∃(R=2)␈↓ ∧O␈ε∃AND␈↓ ¬∪␈ε∃(C=2)␈↓ ¬y␈ε∃THEN
␈βe␈↓ βi␈ε∃WRITE('␈↓ ∧q␈ε∃')
␈β
␈↓ β6␈ε∃ELSE␈↓ ∧␈ε∃WRITE('*');
␈β4␈↓ ββ␈ε∃WRITELN
␈β\␈↓ ββ␈ε∃END
␈β
U␈↓ ↓H␈∧
U↓Hα
-
␈β
W␈↓ ↓H␈∧
W↓Hλα␈↓ s␈∧
Wsλα
␈β
↑␈↓ ↓H␈∧
↑↓Hα
-
␈β
m␈↓ αP␈ε∃*****
␈β∞∃␈↓ αP␈ε∃*␈↓ αr␈ε∃***
␈β∞<␈↓ αP␈ε∃*****
␈β∞d␈↓ αP␈ε∃***␈↓ β∀␈ε∃*
␈β∂␈↓ αP␈ε∃*****
␈β∂G␈↓ ↓H␈∧∂G↓Hα
-
␈β∂H␈↓ ↓H␈∧∂H↓Hλα␈↓ s␈∧∂Hsλα
␈β∂O␈↓ ↓H␈∧∂O↓Hα
-
␈β⊃_

␈β↓H␈↓ ↓$␈∧↓H↓$α
u
␈β↓J␈↓ ↓$␈∧↓J↓$Hα␈↓ "␈∧↓J"Hα␈↓ ↔␈∧↓J↔Hα
␈β↓V␈↓ ∧s␈ε>Lo␈α␈gical␈α∞C␈α↓o␈α␈nn␈α␈e␈α↓cti␈α␈v␈α␈es
␈β↓\␈↓ K␈ε"63
␈βα⊃␈↓ ↓$␈∧α⊃↓$α
u
␈βαN␈↓ αP␈ε∃FOR␈↓ β∀␈ε∃R:=1␈↓ βi␈ε∃TO␈↓ ∧≤␈ε∃5␈↓ ∧>␈ε∃DO
␈βαu␈↓ ββ␈ε∃BEGIN
␈ββ≥␈↓ ββ␈ε∃FOR␈↓ βG␈ε∃C:=1␈↓ ∧≤␈ε∃TO␈↓ ∧O␈ε∃5␈↓ ∧q␈ε∃DO
␈ββD␈↓ β6␈ε∃IF␈↓ βi␈ε∃((R=2)␈↓ ∧`␈ε∃AND␈↓ ¬$␈ε∃(C=2))␈↓ ε≠␈ε∃OR␈↓ εN␈ε∃((R=4)␈↓ πE␈ε∃AND␈↓ λ	␈ε∃(C=4))␈↓ 	␈ε∃THEN
␈ββl␈↓ βi␈ε∃WRITE('␈↓ ∧q␈ε∃')
␈β∧∀␈↓ β6␈ε∃ELSE␈↓ ∧␈ε∃WRITE('*');
␈β∧;␈↓ ββ␈ε∃WRITELN
␈β∧c␈↓ ββ␈ε∃END
␈β¬\␈↓ ↓H␈∧¬\↓Hα
-
␈β¬]␈↓ ↓H␈∧¬]↓Hλα␈↓ s␈∧¬]sλα
␈β¬d␈↓ ↓H␈∧¬d↓Hα
-
␈β¬s␈↓ αP␈ε∃*****
␈βε≠␈↓ αP␈ε∃*␈↓ αr␈ε∃*␈↓ β∀␈ε∃*
␈βεB␈↓ αP␈ε∃*****
␈βεj␈↓ αP␈ε∃*␈↓ αr␈ε∃*␈↓ β∀␈ε∃*
␈βπ∩␈↓ αP␈ε∃*****
␈βπM␈↓ ↓H␈∧πM↓Hα
-
␈βπN␈↓ ↓H␈∧πN↓Hλα␈↓ s␈∧πNsλα
␈βπU␈↓ ↓H␈∧πU↓Hα
-
␈βπw␈↓ αP␈ε∃FOR␈↓ β∀␈ε∃R:=1␈↓ βi␈ε∃TO␈↓ ∧≤␈ε∃5␈↓ ∧>␈ε∃DO
␈βλ∨␈↓ ββ␈ε∃BEGIN
␈βλF␈↓ ββ␈ε∃FOR␈↓ βG␈ε∃C:=1␈↓ ∧≤␈ε∃TO␈↓ ∧O␈ε∃5␈↓ ∧q␈ε∃DO
␈βλn␈↓ β6␈ε∃IF␈↓ βi␈ε∃((R=2)␈↓ ∧`␈ε∃OR␈↓ ¬∪␈ε∃(R=4))␈↓ ε
␈ε∃AND␈↓ εN␈ε∃((C=2)␈↓ πE␈ε∃OR␈↓ πx␈ε∃(C=4))␈↓ λo␈ε∃THEN
␈β	∃␈↓ βi␈ε∃WRITE('␈↓ ∧q␈ε∃')
␈β	=␈↓ β6␈ε∃ELSE␈↓ ∧␈ε∃WRITE('*');
␈β	e␈↓ ββ␈ε∃WRITELN
␈β
␈↓ αP␈ε∃END
␈β
c␈↓ ↓H␈ε2Exercise
␈β∪␈↓ α␈ε$Use␈αlogic␈α␈a␈α↓l␈αconnec␈α␈tiv␈α␈es␈αto␈α
wri␈α␈te␈αa␈α
si␈α␈m␈α↓pl␈α␈er␈αsolut␈α␈ion␈α
to␈αthe␈αexe␈α␈rci␈α␈se␈αsh␈α↓o␈α␈wing␈α
t␈α␈he␈αq␈α↓ue␈α␈en␈αo␈α↓n␈αthe
␈β?␈↓ ↓H␈ε$c␈α␈hessboard.
␈β}␈↓ ↓H␈ε2Exercise
␈β(␈↓ α␈ε$The␈αinput␈α|l␈α␈e␈αfor␈αthis␈αprog␈α↓r␈α␈a␈α↓m␈αwi␈α␈ll␈αc␈α␈o␈α↓n␈α␈tai␈α␈n␈αse␈α␈ve␈α␈ral␈αsequenc␈α␈es␈αo␈α↓f␈αn␈α␈umbers␈α(don't␈αassum␈α↓e␈αthe␈α␈y
␈βL␈↓ ↓H␈ε$are␈αin␈α␈tege␈α␈rs).␈α⊗Ea␈α↓c␈α␈h␈α
sequenc␈α␈e␈α
wi␈α␈ll␈αbe␈α
prec␈α␈ede␈α␈d␈α
by␈α∞a␈α
n␈α␈umbe␈α␈r␈α
(1␈α∞or␈α
greate␈α␈r)␈α∞whi␈α␈ch␈α
i␈α␈s␈α
the␈α
l␈α␈ength␈α
of
␈βp␈↓ ↓H␈ε$the␈αse␈α␈quence␈α␈.␈α⊃P␈α↓re␈α␈ce␈α␈ding␈αe␈α␈ve␈α␈rything␈αe␈α␈lse␈αon␈αthe␈αi␈α␈nput␈αw␈α↓i␈α␈ll␈αbe␈αa␈αnum␈α␈ber␈α(␈α↓1␈αo␈α↓r␈αgreater)␈αwhic␈α␈h␈αis␈αthe
␈β
∀␈↓ ↓H␈ε$n␈α␈um␈α␈ber␈α
of␈αse␈α␈q␈α↓unc␈α␈es.␈α
In␈α
symbols,␈α	the␈α
input␈α
i␈α␈s
␈β
K␈↓ β&␈ε*N␈↓ βJ␈ε*L␈↓ βu␈ε*A␈↓ ∧7␈ε*A␈↓ ∧y␈ε8↓␈α¬↓␈α∧↓␈↓ ¬$␈ε*A␈↓ ¬x␈ε*L␈↓ ε#␈ε*A␈↓ εe␈ε8↓␈α∧↓␈α¬↓␈↓ π∂␈ε*A␈↓ πd␈ε8↓␈α∧↓␈α¬↓␈↓ λ∞␈ε*L␈↓ λC␈ε*A␈↓ 		␈ε8↓␈α¬↓␈α¬↓␈↓ 	4␈ε*A
␈β
T␈↓ β←␈ε&1␈↓ ∧␈ε&1,1␈↓ ∧M␈ε&1,2␈↓ ¬:␈ε&1␈α␈,␈↓ ¬P␈ε,L␈↓ ε
␈ε&2␈↓ ε9␈ε&2␈α␈,␈α↓1␈↓ π%␈ε&2,␈↓ π;␈ε,L␈↓ λ#␈ε,N␈↓ λZ␈ε,N␈↓ λr␈ε&,1␈↓ 	J␈ε,N␈↓ 	c␈ε&,␈↓ 	k␈ε,L
␈β
[␈↓ ¬a␈ε'1␈↓ πM␈ε'2
␈β
\␈↓ 	⎇␈ε-N
␈β∞β␈↓ ↓H␈ε$Y␈α⎇our␈α
pro␈α↓gram␈α
sh␈α↓ould␈α
|nd␈α
i␈α␈n␈α
each␈α
se␈α␈quence␈↓ ε%␈ε*A␈↓ εe␈ε8↓␈α¬↓␈α∧↓␈↓ π⊃␈ε*A␈↓ πe␈ε$the␈αlongest␈α
c␈α␈o␈α↓ns␈α␈ecuti␈α␈v␈α␈e␈α
i␈α␈ncre␈α␈a␈α↓si␈α␈ng␈α
sub-
␈β∞␈↓ ε;␈ε,i␈ε&,1␈↓ π(␈ε,i␈ε&␈α␈,␈↓ π:␈ε,L
␈β∞∀␈↓ πK␈ε-i
␈β∞'␈↓ ↓H␈ε$se␈α␈quence␈α␈,␈αand␈αprin␈α␈t␈αthe␈α|rs␈α␈t␈αa␈α↓nd␈αl␈α␈a␈α↓st␈αn␈α␈um␈α␈bers␈αi␈α␈n␈αt␈α␈ha␈α↓t␈αi␈α␈ncre␈α␈a␈α↓si␈α␈ng␈αsubsequenc␈α␈e.␈α⊂(In␈αthe␈αcase␈α
o␈α↓f␈αti␈α␈es,
␈β∞K␈↓ ↓H␈ε$use␈α	the␈α
earl␈α␈ie␈α␈r␈αs␈α␈ubsequenc␈α␈e.)
␈β∞o␈↓ α␈ε$Exa␈α↓mple␈α␈:␈αi␈α␈n␈αthe␈αse␈α␈quence␈α
3␈α8␈α7␈α2␈α5␈α6␈α4␈α1␈α9,␈αthe␈α
longest␈αc␈α␈o␈α↓ns␈α␈ecuti␈α␈v␈α␈e␈αi␈α␈ncreasi␈α␈ng␈αs␈α␈ubsequenc␈α␈e␈αis
␈β∂∪␈↓ ↓H␈ε$2␈α
5␈α6,␈α
so␈α
the␈α
program␈αw␈α␈o␈α↓ul␈α␈d␈α
prin␈α␈t␈α
2␈αand␈α
6.
␈β∂8␈↓ α␈ε$Use␈α
the␈α
pr␈α␈o␈α↓gram␈αon␈α
the␈α
data␈αbel␈α␈o␈α␈w␈α↓:
␈β⊃≥

␈β↓H␈↓ ↓$␈∧↓H↓$α
u
␈β↓J␈↓ ↓$␈∧↓J↓$Hα␈↓ α→␈∧↓Jα→Hα␈↓ ↔␈∧↓J↔Hα
␈β↓V␈↓ ¬n␈ε>Lo␈α␈gical␈α∞C␈α↓o␈α␈nn␈α␈e␈α↓cti␈α␈v␈α␈es
␈β↓\␈↓ ↓M␈ε"64
␈βα⊃␈↓ ↓$␈∧α⊃↓$α
u
␈βαN␈↓ α≥␈ε∃5
␈βαu␈↓ α≥␈ε∃8␈↓ αr␈ε∃82␈↓ βX␈ε∃31␈↓ ∧>␈ε∃41␈↓ ¬$␈ε∃59␈↓ ε
␈ε∃26␈↓ εp␈ε∃54␈↓ πg␈ε∃2␈↓ λ<␈ε∃17
␈ββ≥␈↓ α≥␈ε∃6␈↓ αr␈ε∃13␈↓ βX␈ε∃17␈↓ ∧>␈ε∃19␈↓ ¬$␈ε∃23␈↓ ε
␈ε∃29␈↓ εp␈ε∃31
␈ββD␈↓ α␈ε∃10␈↓ αr␈ε∃90␈↓ βX␈ε∃10␈↓ ∧>␈ε∃20␈↓ ¬$␈ε∃30␈↓ ε
␈ε∃40␈↓ π↓␈ε∃5␈↓ πV␈ε∃15␈↓ λ<␈ε∃25␈↓ 	"␈ε∃35␈↓ 
λ␈ε∃34
␈ββl␈↓ α≥␈ε∃3␈↓ αr␈ε∃68␈↓ βX␈ε∃52␈↓ ∧>␈ε∃13
␈β∧∀␈↓ α≥␈ε∃5␈↓ αP␈ε∃1066␈↓ β6␈ε∃1984␈↓ ∧≤␈ε∃1776␈↓ ¬α␈ε∃1865␈↓ ¬h␈ε∃1929
␈β∧N␈↓ α␈ε$If␈αyou␈αha␈α␈ve␈α
re␈α␈a␈α↓d␈αahead␈αi␈α␈n␈αthe␈α
course␈αno␈α↓te␈α␈s,␈αy␈α␈ou␈αm␈α↓a␈α␈y␈αsee␈α
that␈αthi␈α␈s␈αproble␈α␈m␈αc␈α␈a␈α↓n␈αbe␈α
done␈αusi␈α␈ng
␈β∧r␈↓ ↓H␈ε$arra␈α␈ys.␈α∀They␈αa␈α↓r␈α␈e␈αn␈α↓o␈α↓t␈αne␈α␈eded;␈α
pl␈α␈ease␈αdo␈α
the␈αpr␈α␈o␈α↓bl␈α␈em␈α
wi␈α␈th␈α↓out␈α
the␈α␈m␈α↓.␈α∪H␈α↓INT:␈αIf␈αyou␈αhav␈α␈e␈αdi}cul␈α␈t␈α␈y
␈β¬⊗␈↓ ↓H␈ε$get␈α␈ting␈αstarte␈α␈d,␈α|rst␈αwri␈α␈te␈α
a␈αpro␈α↓gram␈αwhi␈α␈ch␈αs␈α␈imply␈α|nds␈αthe␈α
largest␈α
n␈α␈umber␈α
in␈αe␈α␈a␈α↓c␈α␈h␈αseque␈α␈nce,␈α
and
␈β¬:␈↓ ↓H␈ε$i␈α␈ts␈α
positi␈α␈o␈α↓n␈α
i␈α␈n␈α
tha␈α↓t␈α
se␈α␈q␈α↓ue␈α␈nce␈α␈.
␈β¬r␈↓ α6␈∧¬rα6αλQ
␈β¬t␈↓ α6␈∧¬tα6α⊂α␈↓ ¬␈∧¬t¬α⊂α
␈β¬y␈↓ ∧8␈ε2Rule␈αof␈αGo␈α↓od␈αProgramming␈αPractice:
␈βε$␈↓ αB␈ε/Check␈α∞y␈α␈our␈α∞program␈α∞on␈α∞extreme␈α∞v␈α}alues␈α∞of␈α∂data.␈α⊗In␈α∞the␈α∞case␈α∞of␈α∞this
␈βεO␈↓ αB␈ε/exercise,␈α∩this␈α⊃means␈α⊃y␈α␈ou␈α⊃sh␈α↓ould␈α⊃check␈α⊂that␈α⊃it␈α⊃w␈α␈orks␈α⊃if␈↓ 	N␈ε(N␈↓ 
β␈ε"=␈α∩1␈ε/␈α⊃(a
␈βεz␈↓ αB␈ε/single␈αsequence),␈αand␈αif␈↓ ¬7␈ε(L␈↓ ¬j␈ε"=␈α
1␈ε/␈α(a␈αsequence␈αof␈αlength␈α1).␈α⊂In␈αaddition,
␈βππ␈↓ ¬O␈ε%1
␈βπ&␈↓ αB␈ε/y␈α␈ou␈α∂sh␈α↓ould␈α∞check␈α∂that␈α∞it␈α∂handles␈α∂appropriately␈α∞(error␈α∂messages,␈α∂for
␈βπQ␈↓ αB␈ε/example)␈αthe␈αforbidden␈αcases␈↓ ε⊗␈ε(N␈↓ εC␈ε6∀␈ε"␈α
0␈ε/␈αand␈↓ πU␈ε(L␈↓ λβ␈ε6∀␈ε"␈α
0␈ε/.
␈βπ]␈↓ πm␈ε+i
␈βλβ␈↓ α6␈∧λβα6αλQ
␈β⊃_

␈β↓H␈↓ ↓$␈∧↓H↓$α
u
␈β↓J␈↓ ↓$␈∧↓J↓$Hα␈↓ "␈∧↓J"Hα␈↓ ↔␈∧↓J↔Hα
␈β↓V␈↓ ∧∪␈ε>D␈α␈e␈α↓s␈α␈ign␈α∞o␈α␈f␈α∂Iterativ␈α}e␈α∂Com␈α␈mands
␈β↓\␈↓ K␈ε"65
␈βα⊃␈↓ ↓$␈∧α⊃↓$α
u
␈βα[␈↓ ↓H␈ε>D␈α␈e␈α↓s␈α␈ign␈α∞o␈α␈f␈α∂Iterativ␈α}e␈α∂Com␈α␈mands.
␈ββ≡␈↓ α␈ε"A␈αcertain␈αbreeder␈αof␈αrabbits␈αbegins␈αwith␈αone␈αpair␈αof␈αnewborn␈αrabbits.␈α⊂Each␈αpair
␈ββI␈↓ ↓H␈ε"of␈α∞rabbits␈α∂has␈α∞its␈α∂|rst␈α∂litter␈α∞(an␈α↓other␈α∂pair)␈α∞a$er␈α∂t␈α␈w␈α␈o␈α∞m␈α↓on␈α␈ths,␈α⊂and␈α∞an␈α↓other␈α∂litter␈α∞of
␈ββu␈↓ ↓H␈ε"t␈α␈w␈α␈o␈αeach␈αm␈α↓on␈α␈th␈α
therea$er.␈α⊃A␈α␈t␈αthe␈αend␈α
of␈αt␈α␈w␈α␈o␈αy␈α␈ears,␈α
h␈α↓o␈α␈w␈αman␈α␈y␈αpairs␈α
of␈αrabbits␈αwill
␈β∧ ␈↓ ↓H␈ε"the␈αbreeder␈αha␈α␈v␈α␈e?
␈β∧K␈↓ α␈ε"Let␈αus␈α
designate␈αby␈↓ ∧H␈ε(f␈↓ ∧t␈ε"the␈α
n␈α␈um␈α␈ber␈αof␈αpairs␈α
of␈αrabbits␈αduring␈α
the␈αj-th␈αm␈α↓on␈α␈th.␈α∂W␈α⎇e
␈β∧W␈↓ ∧Z␈ε+j
␈β∧v␈↓ ↓H␈ε"can␈α∞see␈α∂that␈α∂the␈α∂n␈α␈um␈α␈ber␈α∞of␈α∂pairs␈α∂during␈α∞the␈α∂j-th␈α∂m␈α↓on␈α␈th,␈α∂for␈↓ 	}␈ε",␈α∂is␈α∂the␈α∞n␈α␈um␈α␈ber
␈β∧x␈↓ 	∨␈ε5j␈α∪>␈α∪2
␈β¬!␈↓ ↓H␈ε"during␈αthe␈αprevious␈αm␈α↓on␈α␈th␈α(␈↓ ¬α␈ε(f␈↓ ¬P␈ε"),␈αplus␈αthe␈αn␈α␈um␈α␈ber␈αof␈αnewborn␈αpairs,␈αwhich␈αis␈αequal
␈β¬.␈↓ ¬∀␈ε+j␈↓ ¬!␈ε9␈␈ε%1
␈β¬M␈↓ ↓H␈ε"to␈αthe␈αn␈α␈um␈α␈ber␈αof␈αpairs␈αin␈αexistence␈αt␈α␈w␈α␈o␈αm␈α↓on␈α␈ths␈αpreviously␈α(␈↓ λv␈ε(f␈↓ 	C␈ε").␈α⊂In␈αbrief,
␈β¬Y␈↓ 	π␈ε+j␈↓ 	∃␈ε9␈␈ε%2
␈βε∨␈↓ ∧}␈ε(f␈↓ ¬)␈ε"=␈↓ ¬W␈ε(f␈↓ ε-␈ε"+␈↓ εY␈ε(f␈↓ πK␈ε"(␈↓ πW␈ε(j␈↓ πr␈ε6∃␈ε"␈α
3)
␈βε+␈↓ ¬⊂␈ε+j␈↓ ¬i␈ε+j␈↓ ¬w␈ε9␈␈ε%␈α␈1␈↓ εk␈ε+j␈↓ εx␈ε9␈␈ε%2
␈βεq␈↓ ↓H␈ε"The␈α
sequence␈α
determined␈α
by␈α
the␈α
rule␈α
that␈α
each␈α
n␈α␈um␈α␈ber␈α
a$er␈αthe␈α
second␈α
is␈α
the␈α
sum
␈βπ≤␈↓ ↓H␈ε"of␈αthe␈αpreceding␈αt␈α␈w␈α␈o,␈αis:
␈βπd␈↓ β←␈ε(f␈↓ ∧%␈ε(f␈↓ ∧l␈ε(f␈↓ ¬2␈ε(f␈↓ ¬y␈ε(f␈↓ ε?␈ε(f␈↓ ππ␈ε(f␈↓ πO␈ε(f␈↓ λ↔␈ε(f␈↓ λ↑␈ε(f␈↓ 	4␈ε".␈αε.␈αε.
␈βπp␈↓ βp␈ε%1␈↓ ∧7␈ε%2␈↓ ∧⎇␈ε%3␈↓ ¬D␈ε%4␈↓ ε
␈ε%5␈↓ εQ␈ε%6␈↓ π_␈ε%7␈↓ π`␈ε%8␈↓ λ(␈ε%9␈↓ λp␈ε%10
␈βλ∂␈↓ βg␈ε"1␈↓ ∧-␈ε"1␈↓ ∧t␈ε"2␈↓ ¬:␈ε"3␈↓ ε↓␈ε"5␈↓ εH␈ε"8␈↓ πε␈ε"13␈↓ πN␈ε"21␈↓ λ⊗␈ε"34␈↓ λe␈ε"55␈↓ 	4␈ε".␈αε.␈αε.
␈βλR␈↓ ↓H␈ε"This␈αis␈αthe␈αw␈α␈ell-kn␈α↓o␈α␈wn␈αFibonacci␈αsequence.
␈βλ⎇␈↓ α␈ε"A␈αprogram␈αto␈αcompute␈αthe␈αansw␈α␈er␈αto␈αthis␈αproblem␈αmigh␈α␈t␈αbe␈αstated:
␈β	8␈↓ ¬α␈ε)f␈↓ ε7␈ε)f␈↓ π=␈ε)f
␈β	:␈↓ ↓H␈ε∃1.␈↓ αP␈ε∃Compute␈↓ βX␈ε∃and␈↓ ∧≤␈ε∃print␈↓ ¬/␈ε∃,␈↓ ¬Q␈ε∃where␈↓ εh␈ε∃=␈↓ π
␈ε∃1,␈↓ πn␈ε∃=␈↓ λ⊂␈ε∃1,␈↓ λC␈ε∃and
␈β	C␈↓ ¬∩␈ε&24␈↓ εH␈ε&1␈↓ πM␈ε&2
␈β	←␈↓ ∧≤␈ε)f␈↓ ∧m␈ε)f␈↓ ¬f␈ε)f
␈β	a␈↓ αP␈ε∃in␈↓ ββ␈ε∃general,␈↓ ∧K␈ε∃=␈↓ ¬D␈ε∃+␈↓ ε-␈ε∃.
␈β	k␈↓ ∧,␈ε,j␈↓ ∧⎇␈ε,j␈↓ ¬
␈ε:␈␈ε&1␈↓ ¬w␈ε,j␈↓ εβ␈ε:␈␈ε&␈α↓2
␈β
π␈↓ ∧≤␈ε)f
␈β
	␈↓ αP␈ε∃(Actually,␈↓ ∧Z␈ε∃is␈↓ ¬
␈ε∃the␈↓ ¬Q␈ε∃number␈↓ εH␈ε∃just␈↓ π≥␈ε∃befo␈α↓re␈↓ λ∃␈ε∃two␈↓ λY␈ε∃years␈↓ 	?␈ε∃elapse;
␈β
∪␈↓ ∧,␈ε&24
␈β
/␈↓ αP␈ε)f
␈β
1␈↓ β∞␈ε∃is␈↓ βA␈ε∃the␈↓ ∧¬␈ε∃number␈↓ ∧|␈ε∃just␈↓ ¬Q␈ε∃after.)
␈β
:␈↓ α`␈ε&25
␈β
m␈↓ ↓H␈ε"In␈α
the␈α
absence␈α
of␈αan␈α␈y␈α
special␈α
kn␈α↓o␈α␈wledge␈αwhich␈α
w␈α␈ould␈α
allo␈α␈w␈α
us␈αto␈α
get␈↓ 	u␈ε(f␈↓ 
1␈ε"with␈α↓out␈α
|rst
␈β
y␈↓ 
π␈ε%24
␈β_␈↓ ↓H␈ε"computing␈↓ αz␈ε(f␈↓ β≤␈ε",␈↓ β2␈ε(f␈↓ βU␈ε",␈↓ βk␈ε(f␈↓ ∧
␈ε",␈↓ ∧#␈ε(f␈↓ ∧F␈ε",␈αetc.,␈αa␈αnatural␈αdecomposition␈αof␈αthe␈αproblem␈αw␈α␈ould␈αbe:
␈β%␈↓ β␈ε%1␈↓ βD␈ε%2␈↓ β|␈ε%3␈↓ ∧5␈ε%4
␈βS␈↓ ∧q␈ε)f␈↓ ¬"␈ε)f␈↓ ¬R␈ε#.␈αε.␈αε.␈↓ ε⊂␈ε)f␈↓ πV␈ε)f
␈βU␈↓ ↓H␈ε∃1.1␈↓ αP␈ε∃Compute␈↓ βX␈ε∃in␈↓ ∧␈ε∃turn␈↓ ¬⊃␈ε∃,␈↓ ¬A␈ε∃,␈↓ ¬␈␈ε∃,␈↓ ε=␈ε∃,␈↓ ε←␈ε∃where␈↓ λπ␈ε∃=␈↓ λ)␈ε∃1,
␈β←␈↓ ¬↓␈ε&1␈↓ ¬2␈ε&2␈↓ ε ␈ε&24␈↓ πf␈ε&1
␈β{␈↓ αP␈ε)f␈↓ ∧→␈ε)f␈↓ ∧k␈ε)f␈↓ ¬d␈ε)f
␈β⎇␈↓ β␈ε∃=␈↓ β"␈ε∃1,␈↓ βU␈ε∃and␈↓ ∧I␈ε∃=␈↓ ¬B␈ε∃+␈↓ ε*␈ε∃.
␈βπ␈↓ α`␈ε&2␈↓ ∧*␈ε,j␈↓ ∧{␈ε,j␈↓ ¬π␈ε:␈␈ε&␈α↓1␈↓ ¬u␈ε,j␈↓ ε↓␈ε:␈␈ε&2
␈βJ␈↓ βG␈ε)f
␈βL␈↓ ↓H␈ε∃1.2␈↓ αP␈ε∃Print␈↓ βt␈ε∃.
␈βV␈↓ βW␈ε&24
␈β
λ␈↓ α␈ε"Step␈αλ1.1␈αλcann␈α↓ot␈αλy␈α␈et␈αλbe␈α	expressed␈αλas␈αλan␈αλiteration,␈α	because␈↓ λu␈ε(f␈↓ 	 ␈ε"and␈↓ 	b␈ε(f␈↓ 
␈ε"are␈αλdetermined
␈β
∃␈↓ 	π␈ε%1␈↓ 	s␈ε%2
␈β
4␈↓ ↓H␈ε"by␈αdi{eren␈α␈t␈αrules␈αthan␈↓ ∧2␈ε(f␈↓ ∧T␈ε",␈↓ ∧↑␈ε(f␈↓ ¬↓␈ε",␈↓ ¬␈ε".␈αε.␈αε.␈↓ ¬;␈ε",␈↓ ¬E␈ε(f␈↓ ¬v␈ε".␈α⊂Th␈α␈us␈α
Step␈α1.1␈αm␈α␈ust␈α|rst␈αbe␈αdecomposed␈αas
␈β
@␈↓ ∧C␈ε%3␈↓ ∧p␈ε%4␈↓ ¬V␈ε%2␈α↓4
␈β
o␈↓ β%␈ε)f
␈β
q␈↓ ↓H␈ε∃1.1.1␈↓ αP␈ε∃Set␈↓ βU␈ε∃=␈↓ βw␈ε∃1␈↓ ∧→␈ε∃;
␈β
z␈↓ β5␈ε&1
␈β∞>␈↓ β%␈ε)f
␈β∞@␈↓ ↓H␈ε∃1.1.2␈↓ αP␈ε∃Set␈↓ βU␈ε∃=␈↓ βw␈ε∃1␈↓ ∧→␈ε∃;
␈β∞J␈↓ β5␈ε&2
␈β∂
␈↓ ∧q␈ε)f␈↓ ¬"␈ε)f␈↓ ¬R␈ε#.␈αε.␈αε.␈↓ ε⊂␈ε)f
␈β∂∂␈↓ ↓H␈ε∃1.1.3␈↓ αP␈ε∃Compute␈↓ βX␈ε∃in␈↓ ∧␈ε∃turn␈↓ ¬⊃␈ε∃,␈↓ ¬A␈ε∃,␈↓ ¬␈␈ε∃,
␈β∂→␈↓ ¬↓␈ε&3␈↓ ¬2␈ε&4␈↓ ε ␈ε&24
␈β∂5␈↓ ∧≤␈ε)f␈↓ ∧j␈ε)f␈↓ ¬a␈ε)f
␈β∂7␈↓ β%␈ε∃where␈↓ ∧H␈ε∃=␈↓ ¬?␈ε∃+␈↓ ε%␈ε∃.
␈β∂@␈↓ ∧,␈ε,i␈↓ ∧{␈ε,i␈ε:␈␈ε&1␈↓ ¬r␈ε,i␈ε:␈␈ε&2
␈β⊃_

␈β↓H␈↓ ↓$␈∧↓H↓$α
u
␈β↓J␈↓ ↓$␈∧↓J↓$Hα␈↓ α→␈∧↓Jα→Hα␈↓ ↔␈∧↓J↔Hα
␈β↓V␈↓ ¬∞␈ε>D␈α␈e␈α↓s␈α␈ign␈α∞o␈α␈f␈α∂Iterativ␈α}e␈α∂Com␈α␈mands
␈β↓\␈↓ ↓M␈ε"66
␈βα⊃␈↓ ↓$␈∧α⊃↓$α
u
␈βαO␈↓ ↓H␈ε"Step␈α1.1.3␈αn␈α↓o␈α␈w␈αcan␈αbe␈αexpressed␈αiterativ␈α␈ely:
␈ββ∂␈↓ ↓H␈ε∃1.1.3'␈↓ αP␈ε∃FOR␈↓ β∀␈ε∃I:=3␈↓ βi␈ε∃TO␈↓ ∧≤␈ε∃24␈↓ ∧O␈ε∃DO
␈ββ5␈↓ ∧-␈ε)f␈↓ εH␈ε)f␈↓ π⊗␈ε)f␈↓ λ
␈ε)f
␈ββ7␈↓ β∀␈ε∃Compute␈↓ ∧j␈ε∃b␈α↓y␈↓ ¬≡␈ε∃the␈↓ ¬b␈ε∃rule␈↓ εt␈ε∃=␈↓ πk␈ε∃+
␈ββ@␈↓ ∧=␈ε,i␈↓ εX␈ε,i␈↓ π'␈ε,i␈ε:␈α␈␈␈ε&␈α↓1␈↓ λ≡␈ε,i␈ε:␈α␈␈␈ε&␈α↓2
␈ββy␈↓ α␈ε"Ho␈α␈w␈α␈ev␈α␈er,␈αto␈αexpress␈αthe␈αiterated␈αcommand␈αin␈αPascal,␈αw␈α␈e␈αm␈α␈ust␈αmak␈α␈e␈αsome␈αpro␈α␈vi-
␈β∧$␈↓ ↓H␈ε"sion␈αfor␈αha␈α␈ving␈αretained␈αthe␈αv␈α}alues␈αof␈↓ ε≤␈ε(f␈↓ εs␈ε"and␈↓ π9␈ε(f␈↓ λ⊂␈ε"from␈αprevious␈αcomputations␈αas
␈β∧1␈↓ ε.␈ε+i␈ε9␈␈ε%␈α␈2␈↓ πK␈ε+i␈ε9␈α␈␈␈ε%1
␈β∧P␈↓ ↓H␈ε"the␈αv␈α}alues␈αof␈αstorage␈αv␈α}ariables.
␈β∧}␈↓ α␈ε"Suppose␈αat␈αa␈α
certain␈αstage␈αof␈αthe␈αiteration,␈αsa␈α␈y␈↓ λ→␈ε"=␈α8,␈αthat␈↓ 	↑␈ε"con␈α␈tains␈α
8␈α(=␈↓ F␈ε(f␈↓ h␈ε")
␈β¬␈↓ πz␈ε5I␈↓ 	?␈ε5A
␈β¬
␈↓ X␈ε%6
␈β¬)␈↓ ↓H␈ε"and␈↓ α-␈ε"con␈α␈tains␈α13␈α(=␈↓ ∧&␈ε(f␈↓ ∧H␈ε").␈α⊂By␈αthe␈αcommand
␈β¬+␈↓ α∞␈ε5B
␈β¬5␈↓ ∧7␈ε%7
␈βε
␈↓ αX␈ε5C␈α∩:=␈α∪A+B
␈βεg␈↓ ↓H␈ε"w␈α␈e␈αadd␈α8␈α+␈α13␈α=␈α21␈α=␈↓ ∧Q␈ε(f␈↓ ∧s␈ε",␈αlea␈α␈ving␈αit␈αin␈↓ εd␈ε".
␈βεi␈↓ εQ␈ε5C
␈βεs␈↓ ∧b␈ε%8
␈βπ∃␈↓ α␈ε"T␈α⎇o␈α
mak␈α␈e␈α
the␈αanalogous␈α
action␈α
happen␈α
at␈αstage␈↓ λ≤␈ε"=␈α9␈α
of␈α
the␈α
iteration,␈α
w␈α␈e␈αm␈α␈ust
␈βπ↔␈↓ π|␈ε5I
␈βπ@␈↓ ↓H␈ε"start␈αit␈αo{␈αwith␈↓ β`␈ε"=␈α13,␈αand␈↓ ¬,␈ε"=␈α21.␈α⊂So␈αw␈α␈e␈αadd␈αt␈α␈w␈α␈o␈αm␈α↓ore␈αcommands␈αto␈αthe␈αiterated
␈βπB␈↓ βB␈ε5A␈↓ ¬∞␈ε5B
␈βπk␈↓ ↓H␈ε"block
␈βλ+␈↓ αP␈ε∃A:=B;
␈βλS␈↓ αP␈ε∃B:=C
␈β	∃␈↓ ↓H␈ε"which,␈αwhen␈↓ β)␈ε"=8,␈αchanges␈↓ ¬↔␈ε"to␈α13␈αand␈αthen␈↓ π%␈ε"to␈α21,␈αlea␈α␈ving␈αthese␈αv␈α}ariables␈αwith␈αthe
␈β	↔␈↓ β⊗␈ε5I␈↓ ∧y␈ε5A␈↓ ππ␈ε5B
␈β	A␈↓ ↓H␈ε"v␈α}alues␈αexpected␈αby␈αthe␈αnext␈αstage␈αof␈αthe␈αiteration.
␈β	o␈↓ α␈ε"It␈α
remains␈α
to␈α
mak␈α␈e␈↓ ∧f␈ε"=␈α
1␈α
=␈↓ ¬g␈ε(f␈↓ ε⊗␈ε"and␈↓ ε⎇␈ε"=␈α
1␈α
=␈↓ π⎇␈ε(f␈↓ λ-␈ε"before␈α
en␈α␈tering␈α
the␈αiteration.
␈β	q␈↓ ∧F␈ε5A␈↓ ε]␈ε5B
␈β	{␈↓ ¬y␈ε%1␈↓ λ∂␈ε%2
␈β
~␈↓ ↓H␈ε"A$er␈αthe␈αiteration,␈↓ ∧∨␈ε"will␈αcon␈α␈tain␈↓ ¬b␈ε(f␈↓ ε∪␈ε".
␈β
≤␈↓ ∧␈ε5C
␈β
&␈↓ ¬s␈ε%2␈α↓4
␈β
H␈↓ α␈ε"W␈α⎇e␈αapproach␈αsuch␈αproblems␈αby␈αthe␈αfollo␈α␈wing␈αprocedure:
␈β
p␈↓ π∪␈ε+th
␈β
v␈↓ ↓Z␈ε6∂␈↓ ↓}␈ε"Iden␈α␈tify␈α
the␈α
needed␈α
information.␈α∀A␈α␈t␈α
the␈↓ πε␈ε(i␈↓ π?␈ε"iteration␈α
w␈α␈e␈α
need␈↓ 	]␈ε(f␈↓ 
5␈ε"and␈↓ 
|␈ε(f␈↓ T␈ε"to
␈βα␈↓ 	o␈ε+i␈ε9␈␈ε%␈α␈2␈↓ ∞␈ε+i␈ε9␈␈ε%␈α␈1
␈β!␈↓ α4␈ε"compute␈↓ βF␈ε(f␈↓ βd␈ε".
␈β-␈↓ βW␈ε+i
␈βO␈↓ ↓Z␈ε6∂␈↓ ↓}␈ε"Ch␈α↓o␈α↓ose␈αstorage␈αv␈α}ariables␈αin␈αwhich␈αthe␈αinformation␈αis␈αto␈αbe␈αsystematically␈αk␈α␈ept␈αat
␈βz␈↓ α4␈ε"the␈αbeginning␈αof␈αeach␈αiteration:␈αW␈α⎇e␈αwill␈α|nd␈↓ πw␈ε(f␈↓ λM␈ε"in␈↓ 	⊗␈ε"and␈↓ 	\␈ε(f␈↓ 
3␈ε"in␈↓ 
p␈ε".
␈β|␈↓ λw␈ε5A␈↓ 
]␈ε5B
␈βπ␈↓ λλ␈ε+i␈ε9␈␈ε%2␈↓ 	n␈ε+i␈ε9␈␈ε%␈α␈1
␈β(␈↓ ↓Z␈ε6∂␈↓ ↓}␈ε"Assuming␈α
that␈α∞the␈α
storage␈α∞v␈α}ariables␈α∞h␈α↓old␈α
the␈α∞desired␈α
information␈α∞from␈α
previous
␈βT␈↓ α4␈ε"computations,␈α∞design␈α∂the␈α∞process␈α∞for␈α∂a␈α∞t␈α␈ypical␈α∞iteration.␈α↔T␈α⎇o␈α∞compute␈↓ ∃␈ε(f␈↓ 3␈ε",␈α∞w␈α␈e
␈β`␈↓ &␈ε+i
␈β␈␈↓ α4␈ε"need␈↓ βλ␈ε(f␈↓ βZ␈ε"+␈↓ ∧ε␈ε(f␈↓ ∧Q␈ε",␈αi.e.,␈↓ ¬d␈ε".
␈β
↓␈↓ ¬+␈ε5A+B
␈β
␈↓ β→␈ε+i␈ε9␈␈ε%2␈↓ ∧_␈ε+i␈ε9␈␈ε%␈α␈1
␈β
-␈↓ ↓Z␈ε6∂␈↓ ↓}␈ε"Determine␈αwhat␈αinformation␈αm␈α␈ust␈αbe␈αretained␈αfor␈αthe␈αnext␈αiteration.␈α⊂A␈α␈t␈αthe␈αnext
␈β
X␈↓ α4␈ε"iteration,␈↓ βp␈ε"will␈αha␈α␈v␈α␈e␈α
been␈αincreased␈α
by␈α1,␈α
so␈αw␈α␈e␈α
m␈α␈ust␈αha␈α␈v␈α␈e␈↓ 	d␈ε(f␈↓ 
{␈ε"=␈↓ *␈ε(f
␈β
Z␈↓ βP␈ε5I
␈β
d␈↓ ;␈ε+i␈ε9␈␈ε%1
␈β
e␈↓ 	u␈ε%(␈ε+␈α↓i␈ε%␈α␈+1)␈ε9␈α↓␈␈ε%␈α␈2
␈β∞β␈↓ α4␈ε"in␈↓ α⎇␈ε"and␈↓ βC␈ε(f␈↓ ∧Y␈ε"=␈↓ ¬π␈ε(f␈↓ ¬1␈ε"in␈↓ ¬n␈ε".
␈β∞¬␈↓ α↑␈ε5A␈↓ ¬[␈ε5B
␈β∞⊂␈↓ βT␈ε%(␈ε+␈α↓i␈ε%␈α␈+1)␈ε9␈α↓␈␈ε%␈α␈1␈↓ ¬→␈ε+i
␈β∞1␈↓ α␈ε"Let␈α∂us␈α∂suppose␈α∂that␈α∂at␈α∂the␈α∂start␈α∂of␈α∂a␈α∂certain␈α∂iteration␈α∂the␈α∂program␈α⊂v␈α}ariable
␈β∞3␈↓ b␈ε5A
␈β∞\␈↓ ↓H␈ε"con␈α␈tains␈α∂the␈α⊂n␈α␈um␈α␈ber␈ε(␈α⊂x␈ε"␈α∂(=␈↓ ¬β␈ε(f␈↓ ¬N␈ε")␈α∂and␈↓ εV␈ε"con␈α␈tains␈α∂the␈α⊂n␈α␈um␈α␈ber␈↓ 	.␈ε(y␈↓ 	P␈ε"(=␈↓ 
⊂␈ε(f␈↓ 
[␈ε").␈α≠A␈α␈t␈α∂the
␈β∞↑␈↓ ε3␈ε5B
␈β∞i␈↓ ¬∃␈ε+i␈ε9␈α␈␈␈ε%2␈↓ 
"␈ε+i␈ε9␈α␈␈␈ε%1
␈β∂λ␈↓ ↓H␈ε"beginning␈α⊂of␈α⊃the␈α⊂next␈α⊃iteration␈α⊃(i.e.,␈α⊃the␈α⊃end␈α⊃of␈α⊂the␈α⊃curren␈α␈t␈α⊃one),␈↓ 
$␈ε"m␈α␈ust␈α⊂con␈α␈tain
␈β∂
␈↓ 
␈ε5A
␈β∂3␈↓ ↓H␈ε(f␈↓ α≤␈ε"=␈↓ αJ␈ε(y␈↓ α]␈ε",␈αand␈↓ βU␈ε"m␈α␈ust␈α
con␈α␈tain␈↓ ¬*␈ε(f␈↓ ¬R␈ε"=␈↓ ε␈ε(f␈↓ εP␈ε"+␈↓ εz␈ε(f␈↓ πN␈ε"=␈ε(␈α
x␈ε"␈αε+␈↓ λ?␈ε(y␈↓ λR␈ε".␈α⊂Diagramatically,␈αw␈α␈e␈α
ha␈α␈v␈α␈e
␈β∂5␈↓ β7␈ε5B
␈β∂?␈↓ ↓Y␈ε+i␈ε9␈␈ε%1␈↓ ¬<␈ε+i␈↓ ε∩␈ε+i␈ε9␈α␈␈␈ε%2␈↓ π␈ε+i␈ε9␈␈ε%1
␈β⊃∨

␈β↓H␈↓ ↓$␈∧↓H↓$α
u
␈β↓J␈↓ ↓$␈∧↓J↓$Hα␈↓ "␈∧↓J"Hα␈↓ ↔␈∧↓J↔Hα
␈β↓V␈↓ ∧∪␈ε>D␈α␈e␈α↓s␈α␈ign␈α∞o␈α␈f␈α∂Iterativ␈α}e␈α∂Com␈α␈mands
␈β↓\␈↓ K␈ε"67
␈βα⊃␈↓ ↓$␈∧α⊃↓$α
u
␈βαS␈↓ π,␈ε5A␈↓ λλ␈ε5B
␈βα⎇␈↓ ∧Z␈ε"Initial␈αsituation␈↓ π,␈ε(x␈↓ λλ␈ε(y
␈ββ(␈↓ ∧Z␈ε"Desired␈αsituation␈↓ π,␈ε(y␈↓ λλ␈ε(x␈ε"␈αλ+␈↓ λP␈ε(y
␈ββo␈↓ ↓H␈ε"W␈α⎇e␈α
n␈α↓o␈α␈w␈α
lo␈α↓ok␈α
for␈α∞a␈α
systematic␈α
w␈α␈a␈α␈y␈α∞of␈α
changing␈α
the␈α
initial␈α∞situation␈α
in␈α␈to␈α
the␈α
desired
␈β∧~␈↓ ↓H␈ε"situation.␈α∪Unfortunately␈α
the␈α
obvious␈α
w␈α␈a␈α␈ys␈α∞of␈α
changing␈α
the␈α
initial␈α
situation␈α
in␈α␈to␈α
the
␈β∧E␈↓ ↓H␈ε"desired␈αsituation␈αfail.␈α⊂If␈αw␈α␈e␈αwrite
␈β¬ ␈↓ αX␈ε5A:␈α␈=B
␈β¬v␈↓ ↓H␈ε"the␈αin␈α␈tial␈αsituation␈αwill␈αbe␈αchanged␈αto
␈βε@␈↓ π9␈ε5A␈↓ λ∀␈ε5B
␈βεi␈↓ ¬∃␈ε"New␈αsituation␈↓ π9␈ε(y␈↓ λ∀␈ε(y
␈βπ0␈↓ ↓H␈ε"so␈α
that␈αthe␈α
v␈α}alue␈α
of␈↓ β␈␈ε(f␈↓ ∧J␈ε"(=␈ε(␈α
x␈ε")␈α
has␈α
been␈αlost;␈αit␈α
is␈αn␈α↓o␈α
longer␈αthe␈α
v␈α}alue␈αof␈α
an␈α␈y␈α
v␈α}ariable,
␈βπ=␈↓ ∧⊃␈ε+i␈ε9␈α␈␈␈ε%2
␈βπ\␈↓ ↓H␈ε"but␈αis␈αstill␈αneeded␈αto␈αcompute␈↓ ¬*␈ε(f␈↓ ¬H␈ε"(=␈ε(␈α
x␈ε"␈αλ+␈↓ εJ␈ε(y␈↓ ε]␈ε").
␈βπh␈↓ ¬;␈ε+i
␈βλλ␈↓ α␈ε"On␈αthe␈αother␈αhand,␈αif␈αw␈α␈e␈αwrite
␈βλb␈↓ αX␈ε5B␈α∩:=␈α∪A+B
␈β	9␈↓ ↓H␈ε"w␈α␈e␈αreach
␈β
α␈↓ π∃␈ε5A␈↓ πq␈ε5B
␈β
+␈↓ ∧q␈ε"New␈αsituation␈↓ π∃␈ε(x␈↓ πq␈ε(y␈↓ λ␈ε"+␈↓ λ8␈ε(y
␈β
s␈↓ ↓H␈ε"and␈αthe␈αv␈α}alue␈αof␈↓ βS␈ε(f␈↓ ∧≥␈ε"(=␈↓ ∧W␈ε(y␈↓ ∧j␈ε")␈αhas␈αbeen␈αlost.
␈β
␈␈↓ βd␈ε+i␈ε9␈␈ε%1
␈β≡␈↓ α␈ε"W␈α⎇e␈α∂see␈α∞that␈α∂the␈α∞source␈α∂of␈α∞the␈α∂di}cult␈α␈y␈α∂is␈α∞that␈α∂the␈α∞old␈α∂v␈α}alue␈α∞of␈↓ 
3␈ε"is␈α∂needed␈α∞to
␈β ␈↓ 
∩␈ε5A
␈βJ␈↓ ↓H␈ε"compute␈α
the␈αdesired␈αv␈α}alue␈αof␈↓ ¬%␈ε",␈αand␈αvice␈α
v␈α␈ersa;␈αwhichev␈α␈er␈αof␈αA␈αand␈↓ 
α␈ε"w␈α␈e␈αchange␈α
|rst,
␈βL␈↓ ¬∩␈ε5B␈↓ 	d␈ε5B
␈βu␈↓ ↓H␈ε"w␈α␈e␈α
lose␈α∞the␈α
information␈α∞needed␈α
to␈α∞compute␈α
the␈α∞desired␈α∞v␈α}alue␈α
for␈α∞the␈α
other.␈α∃This␈α
is
␈β ␈↓ ↓H␈ε"wh␈α␈y␈αa␈αthird␈αstorage␈αv␈α}ariable␈↓ ¬"␈ε",␈αw␈α␈as␈αin␈α␈troduced␈αto␈αh␈α↓old␈αone␈αof␈αthe␈αv␈α}alues␈αsafe.
␈β"␈↓ ¬∂␈ε5C
␈βj␈↓ ε⎇␈ε5A␈↓ πY␈ε5B␈↓ λ|␈ε5C
␈β
∪␈↓ β,␈ε"Initial␈αsituation␈↓ ε⎇␈ε(x␈↓ πY␈ε(y␈↓ λ|␈ε"an␈α␈y␈αv␈α}alue
␈β
>␈↓ β,␈ε"Situation␈αa$er␈↓ ε⎇␈ε(x␈↓ πY␈ε(y␈↓ λ|␈ε(x␈ε"␈αλ+␈↓ 	D␈ε(y
␈β
@␈↓ ¬≡␈ε5C␈α∩:=␈α∪A+B
␈β
i␈↓ β,␈ε"Situation␈αa$er␈↓ ε⎇␈ε(y␈↓ πY␈ε(y␈↓ λ|␈ε(x␈ε"␈αλ+␈↓ 	D␈ε(y
␈β
k␈↓ ¬≡␈ε5A␈α∩:=␈α∪B
␈β∞∀␈↓ β,␈ε"Situation␈αa$er␈↓ ε⎇␈ε(y␈↓ πY␈ε(x␈ε"␈αλ+␈↓ λ!␈ε(y␈↓ λ|␈ε(x␈ε"␈αλ+␈↓ 	D␈ε(y
␈β∞⊗␈↓ ¬≡␈ε5B␈α∩:=␈α∪C
␈β∞\␈↓ α␈ε"Returning␈αto␈αthe␈αprocess␈αof␈αdesigning␈αthe␈αiteration,
␈β∂λ␈↓ ↓Z␈ε6∂␈↓ ↓}␈ε"Determine␈αwhat␈α
v␈α}alues␈αthe␈αstorage␈αv␈α}ariables␈αm␈α␈ust␈αcon␈α␈tain␈αat␈αthe␈αbeginning␈αof␈α
the
␈β∂3␈↓ α4␈ε"|rst␈αexecution␈αof␈αthe␈αiterated␈αcommand.␈α⊂When␈↓ λD␈ε"=␈α3,␈αw␈α␈e␈αm␈α␈ust␈αha␈α␈v␈α␈e␈αinitially
␈β∂5␈↓ λ&␈ε5I
␈β⊃∨

␈β↓H␈↓ ↓$␈∧↓H↓$α
u
␈β↓J␈↓ ↓$␈∧↓J↓$Hα␈↓ α→␈∧↓Jα→Hα␈↓ ↔␈∧↓J↔Hα
␈β↓V␈↓ ¬∞␈ε>D␈α␈e␈α↓s␈α␈ign␈α∞o␈α␈f␈α∂Iterativ␈α}e␈α∂Com␈α␈mands
␈β↓\␈↓ ↓M␈ε"68
␈βα⊃␈↓ ↓$␈∧α⊃↓$α
u
␈βαO␈↓ αT␈ε"=␈↓ β¬␈ε(f␈↓ βa␈ε"=␈↓ ∧∩␈ε(f␈↓ ∧B␈ε"=␈α
1␈α
and␈↓ ¬y␈ε"=␈↓ ε*␈ε(f␈↓ πε␈ε"=␈↓ π7␈ε(f␈↓ πg␈ε"=␈α
1.␈α∀Th␈α␈us␈α
the␈α
iteration␈α
m␈α␈ust␈α
be
␈βαQ␈↓ α4␈ε5A␈↓ ¬Y␈ε5B
␈βα[␈↓ β↔␈ε+I␈↓ β%␈ε9␈␈ε%2␈↓ ∧$␈ε%1␈↓ ε<␈ε+I␈↓ εJ␈ε9␈␈ε%1␈↓ πI␈ε%2
␈βαz␈↓ α4␈ε"preceded␈αby␈↓ ∧T␈ε"and␈↓ ¬f␈ε".
␈βα|␈↓ β⎇␈ε5A:␈α␈=1␈↓ ¬~␈ε5B:=1
␈ββ%␈↓ ↓Z␈ε6∂␈↓ ↓}␈ε"Determine␈α⊂what␈α⊂information␈α⊂from␈α⊃the␈α⊂last␈α⊂execution␈α⊃of␈α⊂the␈α⊂iterated␈α⊂command
␈ββP␈↓ α4␈ε"m␈α␈ust␈α
be␈α
retained␈αfor␈α
use␈α
a$er␈α
the␈αiteration␈α
is␈α
complete.␈α⊂When␈↓ 
"␈ε"=␈α24,␈α
w␈α␈e␈α
will
␈ββR␈↓ 
¬␈ε5I
␈ββ|␈↓ α4␈ε"end␈αwith␈↓ βi␈ε"=␈↓ ∧→␈ε(f␈↓ ∧t␈ε"=␈↓ ¬$␈ε(f␈↓ ¬V␈ε",␈αand␈↓ εQ␈ε"=␈↓ π ␈ε"=␈↓ πP␈ε(f␈↓ π}␈ε"=␈↓ λ.␈ε(f␈↓ λ`␈ε".␈α⊂The␈αneeded␈αinformation
␈ββ}␈↓ βJ␈ε5A␈↓ ε2␈ε5B␈↓ π↓␈ε5C
␈β∧λ␈↓ ∧+␈ε+I␈↓ ∧9␈ε9␈␈ε%2␈↓ ¬6␈ε%23␈↓ πb␈ε+I␈↓ λ@␈ε%24
␈β∧'␈↓ α4␈ε"a$er␈α⊂the␈α⊂iteration␈α⊂is␈↓ ¬∂␈ε(f␈↓ ¬@␈ε",␈α∩which␈α⊂will␈α⊂be␈α⊂retained␈α⊂as␈α⊃the␈α⊂v␈α}alue␈α⊂of␈↓ 
y␈ε"with␈α↓out
␈β∧)␈↓ 
V␈ε5B
␈β∧3␈↓ ¬ ␈ε%24
␈β∧R␈↓ α4␈ε"change␈αto␈αthe␈αprogram.
␈β∧⎇␈↓ ↓H␈ε"W␈α⎇e␈αma␈α␈y␈αn␈α↓o␈α␈w␈αrestate␈αthe␈αprogram␈αin␈αPascal␈αas
␈β¬;␈↓ αP␈ε∃VAR␈↓ β∀␈ε∃A,B,C␈↓ βz␈ε∃:␈↓ ∧≤␈ε∃INTEGER;
␈β¬b␈↓ αP␈ε∃BEGIN
␈βε
␈↓ αP␈ε∃A:=1;␈↓ βi␈ε∃(*␈↓ ∧≤␈ε∃F(1)␈↓ ∧q␈ε∃*)
␈βε2␈↓ αP␈ε∃B:=1;␈↓ βi␈ε∃(*␈↓ ∧≤␈ε∃F(2)␈↓ ∧q␈ε∃*)
␈βεY␈↓ αP␈ε∃FOR␈↓ β∀␈ε∃I:=3␈↓ βi␈ε∃TO␈↓ ∧≤␈ε∃24␈↓ ∧O␈ε∃DO
␈βπ↓␈↓ ββ␈ε∃BEGIN␈↓ ∧O␈ε∃(*␈↓ ¬α␈ε∃A␈↓ ¬$␈ε∃=␈↓ ¬F␈ε∃F(I-2),␈↓ εN␈ε∃B␈↓ εp␈ε∃=␈↓ π∩␈ε∃F(I-1)␈↓ λ	␈ε∃*)
␈βπ(␈↓ ββ␈ε∃C␈↓ β%␈ε∃:=␈↓ βX␈ε∃A+B;␈↓ ∧O␈ε∃(*␈↓ ¬$␈ε∃C␈↓ ¬F␈ε∃=␈↓ ¬h␈ε∃F(I)␈↓ εN␈ε∃*)
␈βπP␈↓ ββ␈ε∃A:=B;␈↓ ∧O␈ε∃(*␈↓ ¬$␈ε∃A␈↓ ¬F␈ε∃=␈↓ ¬h␈ε∃F(I-1)␈↓ π↓␈ε∃*)
␈βπx␈↓ ββ␈ε∃B:=C;␈↓ ∧O␈ε∃(*␈↓ ¬$␈ε∃B␈↓ ¬F␈ε∃=␈↓ ¬h␈ε∃F(I)␈↓ εN␈ε∃*)
␈βλ∨␈↓ ββ␈ε∃END;
␈βλG␈↓ βi␈ε∃(*␈↓ ∧-␈ε∃B␈↓ ∧O␈ε∃=␈↓ ∧q␈ε∃F(24)␈↓ ¬h␈ε∃*)
␈βλn␈↓ αP␈ε∃WRITE('F(24)=',B)
␈β	⊗␈↓ αP␈ε∃END.
␈β	h␈↓ ↓H␈ε2Exercise
␈β
→␈↓ α␈ε$Desi␈α␈gn␈α
a␈αprog␈α↓ram␈α
t␈α␈o␈α
compute␈↓ ¬.␈ε*f␈↓ ¬L␈ε$,␈↓ ¬U␈ε*f␈↓ ¬s␈ε$,␈↓ ¬|␈ε$.␈α∧.␈α¬.␈↓ ε$␈ε$,␈↓ ε-␈ε*f␈↓ εe␈ε$and␈α
pri␈α␈n␈α␈t␈↓ πp␈ε*f␈↓ λ)␈ε$i␈α␈n␈αwhic␈α␈h␈α
t␈α␈w␈α␈o␈αnew␈αel␈α␈em␈α↓e␈α␈n␈α␈ts␈αo␈α↓f␈αthe
␈β
!␈↓ ¬=␈ε&1␈↓ ¬d␈ε&2␈↓ ε<␈ε&24␈↓ π␈␈ε&24
␈β
D␈↓ ↓H␈ε$se␈α␈quence␈α	a␈α↓r␈α␈e␈α
computed␈α
by␈α
each␈α
e␈α␈xec␈α␈ution␈α
of␈αthe␈α	ite␈α␈rated␈α
c␈α␈o␈α↓mm␈α↓and.␈α
This␈α
c␈α␈a␈α↓n␈α
be␈α	done␈α
by␈α
a␈αs␈α␈impler
␈β
o␈↓ ↓H␈ε$program␈αthan␈α
the␈α
one␈α
g␈α↓i␈α␈v␈α␈en␈α
a␈α↓bo␈α␈v␈α␈e.
␈β+␈↓ ↓H␈ε2Exercise
␈βT␈↓ α␈ε$Desi␈α␈gn␈αa␈α
prog␈α↓ram␈αt␈α␈o␈αre␈α␈a␈α↓d␈α
10␈α↓0␈α
n␈α␈umbe␈α␈rs␈α
f␈α↓rom␈αa␈α
|le␈α	a␈α↓nd␈α
pri␈α␈n␈α␈t␈αt␈α␈he␈α
t␈α␈wo␈α
largest␈α␈.
␈β⊂␈↓ ↓H␈ε2Advice
␈βM␈↓ α␈ε"When␈α⊂a␈α∂programming␈α∂problem␈α⊂is␈α∂to␈α↓o␈α⊂di}cult␈α∂to␈α⊂cope␈α∂with␈α⊂conceptually,␈α⊂it␈α∂is
␈βx␈↓ ↓H␈ε"usually␈αm␈α↓ost␈αproductiv␈α␈e␈αto␈αsolv␈α␈e␈αa␈αsimpli|ed␈αv␈α␈ersion␈αof␈αthe␈αproblem␈α|rst.␈α⊂The␈αabo␈α␈v␈α␈e
␈β
#␈↓ ↓H␈ε"exercise,␈α
for␈α
example,␈α
can␈α
be␈α
simpli|ed␈α
to␈α
the␈α
problem␈α
of␈α
|nding␈α
the␈α
largest␈α
one␈α
of
␈β
N␈↓ ↓H␈ε"the␈α100␈αn␈α␈um␈α␈bers.
␈β⊃_

␈β↓H␈↓ ↓$␈∧↓H↓$α
u
␈β↓J␈↓ ↓$␈∧↓J↓$Hα␈↓ "␈∧↓J"Hα␈↓ ↔␈∧↓J↔Hα
␈β↓V␈↓ ∧
␈ε>Con␈α␈str␈α␈uctin␈α␈g␈α∞C␈α↓o␈α␈rr␈α␈e␈α↓ct␈α∞Prog␈α␈rams
␈β↓\␈↓ K␈ε"69
␈βα⊃␈↓ ↓$␈∧α⊃↓$α
u
␈βα[␈↓ ↓H␈ε>Con␈α␈str␈α␈uctin␈α␈g␈α∞C␈α↓o␈α␈rr␈α␈e␈α↓ct␈α∞Prog␈α␈rams.
␈ββ≡␈↓ α␈ε"An␈α␈y␈α␈one␈α⊂wh␈α↓o␈α⊂has␈α⊂written␈α⊂sev␈α␈eral␈α⊂computer␈α⊂programs␈α⊂kn␈α↓o␈α␈ws␈α⊂that␈α⊂it␈α⊂is␈α⊂hard␈α⊂to
␈ββI␈↓ ↓H␈ε"write␈α∞a␈α∂program␈α∞of␈α∂m␈α↓ore␈α∞than␈α∂ten␈α∞lines␈α∞free␈α∂from␈α∞errors␈α∂(\bugs").␈α↔F␈α⎇urtherm␈α↓ore,␈α∂it
␈ββu␈↓ ↓H␈ε"is␈αdi}cult␈αto␈αlocate␈αand␈αrem␈α↓o␈α␈v␈α␈e␈αthe␈αerrors␈α(\debugging")␈αin␈αa␈αdisorganized␈αprogram;
␈β∧ ␈↓ ↓H␈ε"e{ort␈α
in␈α␈v␈α␈ested␈αin␈αsystematic␈αdesign␈αof␈αthe␈α
program␈αis␈αusually␈αrepaid␈αman␈α␈yfold␈α
during
␈β∧K␈↓ ↓H␈ε"the␈α	debugging␈α
phase.␈α∂A␈α	simple␈α
to␈α↓ol␈α
for␈α	diagn␈α↓osis␈α
of␈α	incorrect␈α
programs␈α	is␈α
prin␈α␈ting␈α	the
␈β∧v␈↓ ↓H␈ε"name␈α
and␈α∞v␈α}alue␈α∞of␈α∞each␈α
program␈α∞and␈α∞iteration␈α∞v␈α}ariable,␈α∞whenev␈α␈er␈α
it␈α∞changes.␈α∃This
␈β¬!␈↓ ↓H␈ε"technique␈αis␈αcalled␈α
tracing;␈αits␈αdra␈α␈wback␈αis␈αthat␈αit␈αis␈α
unselectiv␈α␈e,␈αand␈αo$en␈α
prin␈α␈ts␈αto␈α↓o
␈β¬M␈↓ ↓H␈ε"m␈α␈uch␈αinformation.
␈βε
␈↓ ↓H␈ε2Example
␈βε9␈↓ α␈ε"The␈α∂rabbit␈α∂program␈α⊂of␈α∂the␈α∂previous␈α∂section␈α∂can␈α∂be␈α⊂traced␈α∂by␈α∂adding
␈βε;␈↓ 
p␈ε5WRITELN
␈βεd␈↓ ↓H␈ε"commands␈αas␈αfollo␈α␈ws:
␈βπ!␈↓ αP␈ε∃A:=1;
␈βπI␈↓ αP␈ε∃B:=1;
␈βπq␈↓ αP␈ε∃WRITELN('At␈↓ ∧≤␈ε∃the␈↓ ∧`␈ε∃beginning␈↓ ε
␈ε∃A=',A,'␈↓ π#␈ε∃B=',B);
␈βλ_␈↓ αP␈ε∃FOR␈↓ β∀␈ε∃I:=3␈↓ βi␈ε∃STEP␈↓ ∧>␈ε∃1␈↓ ∧`␈ε∃UNTIL␈↓ ¬F␈ε∃24␈↓ ¬y␈ε∃DO
␈βλ@␈↓ ββ␈ε∃BEGIN
␈βλg␈↓ ββ␈ε∃C␈↓ β%␈ε∃:=␈↓ βX␈ε∃A+B;
␈β	∂␈↓ ββ␈ε∃A:=B;␈↓ βi␈ε∃B:=C;
␈β	7␈↓ ββ␈ε∃WRITELN('Inside␈↓ ¬∪␈ε∃the␈↓ ¬W␈ε∃iteration␈↓ π↓␈ε∃I=',I,'␈↓ λ~␈ε∃C=',C,
␈β	↑␈↓ ∧>␈ε∃'␈↓ ∧q␈ε∃A=',A,'␈↓ ε
␈ε∃B=',B);
␈β
ε␈↓ ββ␈ε∃END;
␈β
-␈↓ αP␈ε∃PRINT('F(24)␈↓ ∧-␈ε∃=',A)
␈β
j␈↓ α␈ε"The␈α|rst␈αfew␈αlines␈αof␈αoutput␈αw␈α␈ould␈αbe␈α(ign␈α↓oring␈αspacing)
␈β)␈↓ ↓H␈∧)↓Hα
-
␈β+␈↓ ↓H␈∧+↓Hλα␈↓ s␈∧+sλα
␈β2␈↓ ↓H␈∧2↓Hα
-
␈βA␈↓ αP␈ε∃AT␈↓ ββ␈ε∃THE␈↓ βG␈ε∃BEGINNING␈↓ ∧q␈ε∃A=␈↓ ¬5␈ε∃1␈↓ ¬h␈ε∃B=␈↓ ε,␈ε∃1
␈βi␈↓ αP␈ε∃INSIDE␈↓ βG␈ε∃THE␈↓ ∧␈ε∃ITERATION␈↓ ¬5␈ε∃I=␈↓ ¬y␈ε∃3␈↓ ε,␈ε∃C=␈↓ εp␈ε∃2␈↓ π#␈ε∃A=␈↓ πg␈ε∃1␈↓ λ~␈ε∃B=␈↓ λ↑␈ε∃2
␈β⊂␈↓ αP␈ε∃INSIDE␈↓ βG␈ε∃THE␈↓ ∧␈ε∃ITERATION␈↓ ¬5␈ε∃I=␈↓ ¬y␈ε∃4␈↓ ε,␈ε∃C=␈↓ εp␈ε∃3␈↓ π#␈ε∃A=␈↓ πg␈ε∃2␈↓ λ~␈ε∃B=␈↓ λ↑␈ε∃3
␈β8␈↓ αP␈ε∃INSIDE␈↓ βG␈ε∃THE␈↓ ∧␈ε∃ITERATION␈↓ ¬5␈ε∃I=␈↓ ¬y␈ε∃4␈↓ ε,␈ε∃C=␈↓ εp␈ε∃5␈↓ π#␈ε∃A=␈↓ πg␈ε∃3␈↓ λ~␈ε∃B=␈↓ λ↑␈ε∃5
␈β←␈↓ ββ␈ε∃.
␈β
π␈↓ ββ␈ε∃.
␈β
/␈↓ ββ␈ε∃.
␈β
j␈↓ ↓H␈∧
j↓Hα
-
␈β
k␈↓ ↓H␈∧
k↓Hλα␈↓ s␈∧
ksλα
␈β
r␈↓ ↓H␈∧
r↓Hα
-
␈β⊃_

␈β↓H␈↓ ↓$␈∧↓H↓$α
u
␈β↓J␈↓ ↓$␈∧↓J↓$Hα␈↓ α→␈∧↓Jα→Hα␈↓ ↔␈∧↓J↔Hα
␈β↓V␈↓ ¬v␈ε>Inde|n␈α␈ite␈α∞I␈α↓t␈α␈e␈α↓r␈α␈a␈α↓t␈α␈ion
␈β↓\␈↓ ↓M␈ε"70
␈βα⊃␈↓ ↓$␈∧α⊃↓$α
u
␈βα[␈↓ ↓H␈ε>Ind␈α␈e␈α↓|␈α␈ni␈α␈te␈α∂Iteratio␈α␈n.
␈ββ≡␈↓ α␈ε"Sometimes␈αw␈α␈e␈αw␈α␈an␈α␈t␈αa␈αprogram␈αto␈αrepeat␈αa␈αcertain␈α
operation␈αman␈α␈y␈αtimes,␈αbut␈α
w␈α␈e
␈ββI␈↓ ↓H␈ε"don't␈αλkn␈α↓o␈α␈w␈α	in␈α	adv␈α}ance␈α	h␈α↓o␈α␈w␈αλman␈α␈y.␈α∂Pascal␈α	pro␈α␈vides␈α	a␈αλform␈α	of␈α	iteration␈α	which␈αλcon␈α␈tin␈α␈ues
␈ββu␈↓ ↓H␈ε"un␈α␈til␈α
the␈α
stated␈α∞condition␈α
for␈α
con␈α␈tin␈α␈uing␈α
is␈α∞n␈α↓o␈α
longer␈α
true.␈α∀If␈↓ 	≡␈ε6E␈↓ 	E␈ε"is␈α
the␈α
condition␈α
for
␈β∧ ␈↓ ↓H␈ε"con␈α␈tin␈α␈uing␈αthe␈αrepetition,␈αand␈↓ ¬'␈ε6C␈↓ ¬I␈ε"is␈αthe␈αcommand␈αto␈αbe␈αrepeated,␈αthe␈αcommand␈αto␈αdo
␈β∧K␈↓ ↓H␈ε"the␈αrepetition␈αis
␈β¬∪␈↓ βI␈ε6E␈↓ ∧.␈ε6C
␈β¬∃␈↓ αX␈ε5WH␈α␈ILE␈↓ βu␈ε5DO
␈β¬[␈↓ ↓H␈ε"F␈α⎇or␈α∂example,␈α⊂w␈α␈e␈α∂w␈α␈an␈α␈t␈α⊂a␈α∂a␈α∂program␈α⊂to␈α∂add␈α∂together␈α⊂as␈α∂man␈α␈y␈α∂n␈α␈um␈α␈bers␈α⊂as␈α∂the␈α∂user
␈βεπ␈↓ ↓H␈ε"w␈α␈an␈α␈ts␈α
to␈αt␈α␈ype;␈α∞when␈α
he␈α
has␈α|nished,␈α∞he␈αt␈α␈ypes␈α
a␈α
zero␈α
as␈α
a␈ε/␈α
sen␈α␈tinel␈ε",␈↓ 	l␈ε"i.e.␈α∪a␈α
signal␈αthat
␈βε2␈↓ ↓H␈ε"the␈αiteration␈αis␈αcomplete.
␈βε]␈↓ α␈ε"A$er␈α
reading␈α
each␈α
n␈α␈um␈α␈ber,␈α
the␈αprogram␈α
m␈α␈ust␈α
check␈α
that␈α
the␈α
n␈α␈um␈α␈ber␈α
read␈αw␈α␈as
␈βπλ␈↓ ↓H␈ε"n␈α↓ot␈αzero␈αbefore␈αcon␈α␈tin␈α␈uing␈αthe␈αiteration.␈α⊂If␈↓ πV␈ε"con␈α␈tains␈αthe␈αn␈α␈um␈α␈ber␈αm␈α↓ost␈αrecen␈α␈tly
␈βπ
␈↓ εm␈ε5DA␈α␈TUM
␈βπ3␈↓ ↓H␈ε"read␈α∂from␈α⊂the␈α∂terminal,␈α⊂the␈α⊂condition␈α∂for␈α⊂con␈α␈tin␈α␈uing␈α∂is␈↓ 	?␈ε6≤␈↓ 
	␈ε".␈α~The␈α∂iterated
␈βπ5␈↓ λM␈ε5DATUM␈↓ 	v␈ε50
␈βπ←␈↓ ↓H␈ε"command␈α
m␈α␈ust␈α∞add␈↓ ∧|␈ε"to␈α∞the␈α
sum␈α∞being␈α∞computed,␈α∞and␈α
m␈α␈ust␈α∞then␈α∞prompt␈α
the
␈βπa␈↓ ∧⊂␈ε5DA␈α␈TUM
␈βλ
␈↓ ↓H␈ε"user␈α
and␈αread␈α
the␈αnext␈↓ ¬≠␈ε"before␈αit␈α
ends,␈αso␈α
that␈αthe␈α
next␈αtest␈α
of␈αthe␈α
con␈α␈tin␈α␈uation
␈βλ␈↓ ∧2␈ε5DATUM
␈βλ5␈↓ ↓H␈ε"condition␈α
will␈α∞actualy␈α
test␈α∞the␈α
next␈α∞n␈α␈um␈α␈ber␈α
t␈α␈yped.␈α∃T␈α⎇o␈α∞mak␈α␈e␈α
it␈α∞w␈α␈ork␈α
the␈α∞|rst␈α
time,
␈βλ`␈↓ ↓H␈ε"w␈α␈e␈αm␈α␈ust␈αcorrectly␈αinitialize␈↓ ¬g␈ε"and␈αthe␈αsum.␈α⊂W␈α⎇e␈αget␈αthe␈αprogram:
␈βλb␈↓ ∧⎇␈ε5DA␈α␈TUM
␈β	≤␈↓ αP␈ε∃SUM␈↓ β∀␈ε∃:=␈↓ βG␈ε∃0;
␈β	D␈↓ αP␈ε∃WRITELN(TTY,'FIRST␈↓ ¬∪␈ε∃DATUM');
␈β	k␈↓ αP␈ε∃BREAK(TTY);
␈β
∪␈↓ αP␈ε∃READ(TTY,␈↓ βz␈ε∃DATUM);
␈β
;␈↓ αP␈ε∃WHILE␈↓ β6␈ε∃DATUM␈↓ ∧≤␈ε∃<>␈↓ ∧O␈ε∃0␈↓ ∧q␈ε∃DO
␈β
b␈↓ βX␈ε∃BEGIN
␈β
␈↓ βX␈ε∃WRITELN(TTY,␈↓ ¬5␈ε∃DATUM);
␈β1␈↓ βX␈ε∃SUM␈↓ ∧≤␈ε∃:=␈↓ ∧O␈ε∃SUM␈↓ ¬∪␈ε∃+␈↓ ¬5␈ε∃DATUM;
␈βY␈↓ βX␈ε∃WRITELN(TTY,␈↓ ¬5␈ε∃'NEXT␈↓ ε≠␈ε∃DATUM');
␈β↓␈↓ βX␈ε∃BREAK(TTY);
␈β(␈↓ βX␈ε∃READ(TTY,DATUM);
␈βP␈↓ βX␈ε∃END;
␈βw␈↓ αP␈ε∃WRITELN(TTY);
␈β
∨␈↓ αP␈ε∃WRITELN(TTY,␈↓ ∧-␈ε∃'SUM␈↓ ¬α␈ε∃=␈↓ ¬$␈ε∃',␈↓ ¬W␈ε∃SUM)
␈β
Z␈↓ α␈ε"W␈α⎇e␈αdistinguish␈ε/␈αde|nite␈αiteration␈ε",␈↓ ε≠␈ε"as␈αrepresen␈α␈ted␈αby
␈β∞"␈↓ β#␈ε6V␈↓ βx␈ε6E␈↓ ∧h␈ε6E␈↓ ¬W␈ε6C
␈β∞$␈↓ αX␈ε5FO␈α␈R␈↓ β?␈ε5:=␈↓ ∧/␈ε5TO␈↓ ¬≡␈ε5DO
␈β∞/␈↓ ∧␈ε%1␈↓ ∧{␈ε%2
␈β∞k␈↓ ↓H␈ε"from␈αthe␈ε/␈αinde|nite␈αiteration
␈β∂3␈↓ βI␈ε6E␈↓ ∧.␈ε6C
␈β∂5␈↓ αX␈ε5WH␈α␈ILE␈↓ βu␈ε5DO
␈β⊃_

␈β↓H␈↓ ↓$␈∧↓H↓$α
u
␈β↓J␈↓ ↓$␈∧↓J↓$Hα␈↓ "␈∧↓J"Hα␈↓ ↔␈∧↓J↔Hα
␈β↓V␈↓ ∧{␈ε>Inde|n␈α␈ite␈α∞I␈α↓t␈α␈e␈α↓r␈α␈a␈α↓t␈α␈ion
␈β↓\␈↓ K␈ε"71
␈βα⊃␈↓ ↓$␈∧α⊃↓$α
u
␈βαO␈↓ ↓H␈ε"De|nite␈αiteration␈αis␈αonly␈αapplicable␈αwhen␈αthe␈αprogram␈αcan␈αdetermine␈αbefore␈αstarting
␈βαz␈↓ ↓H␈ε"the␈α
iteration␈α
h␈α↓o␈α␈w␈α
man␈α␈y␈αtimes␈α
the␈α
command␈α
m␈α␈ust␈αbe␈α
repeated,␈α
or␈αat␈α
least␈α
some␈α
upper
␈ββ%␈↓ ↓H␈ε"limit␈α
which␈α
is␈α
sure␈α
to␈α
be␈α
en␈α↓ough.␈α∂Inde|nite␈α
iteration␈α
can␈α
also␈α
handle␈α
situations␈α
where
␈ββP␈↓ ↓H␈ε"n␈α↓o␈α⊃limit␈α∩on␈α∩the␈α⊃n␈α␈um␈α␈ber␈α∩of␈α∩repetitions␈α⊃is␈α∩kn␈α↓o␈α␈wn␈α∩in␈α⊃adv␈α}ance.␈α!Ho␈α␈w␈α␈ev␈α␈er,␈α∪inde|nite
␈ββ|␈↓ ↓H␈ε"iteration␈αis␈αm␈α↓ore␈αdangerous;␈αa␈αprogram␈αlik␈α␈e
␈β∧:␈↓ αP␈ε∃I:=1;
␈β∧b␈↓ αP␈ε∃WHILE␈↓ β6␈ε∃I␈↓ βX␈ε∃<>␈↓ ∧␈ε∃0␈↓ ∧-␈ε∃DO␈↓ ∧`␈ε∃I:=I+1
␈β¬ ␈↓ ↓H␈ε"can␈αgo␈α
on␈α
forev␈α␈er,␈α
or␈α
un␈α␈til␈αit␈α
is␈α
stopped␈α
by␈αexternal␈α
in␈α␈terv␈α␈en␈α␈tion.␈α∩It␈α
is␈α
easy␈α
to␈αwrite
␈β¬K␈↓ ↓H␈ε"such␈α	a␈α
program␈α
by␈α	mistak␈α␈e,␈α
to␈α↓o;␈αin␈α	the␈α
example␈α	here,␈αperhaps␈α	the␈α
programmer␈α	mean␈α␈t
␈β¬w␈↓ ↓H␈ε"to␈αwrite␈αthe␈αletter␈↓ ∧
␈ε"or␈αthe␈αn␈α␈um␈α␈ber␈α10,␈αrather␈αthan␈αzero.
␈β¬y␈↓ βn␈ε5O
␈βε:␈↓ α6␈∧ε:α6αλQ
␈βε<␈↓ α6␈∧ε<α6↓7α␈↓ ¬␈∧ε<¬↓7α
␈βεA␈↓ ∧8␈ε2Rule␈αof␈αGo␈α↓od␈αProgramming␈αPractice:
␈βεl␈↓ αB␈ε/When␈α
writing␈α
an␈αinde|nite␈α
iteration,␈α
con␈α␈vince␈α
y␈α␈ourself␈αthat␈α
the␈α
itera-
␈βπ↔␈↓ αB␈ε/tion␈α
will␈αn␈α↓ot␈α
go␈α
on␈α
forev␈α␈er.␈α∩Unless␈αthe␈α
reason␈α
is␈αcompletely␈α
obvious,
␈βπC␈↓ αB␈ε/explain␈αit␈αin␈αa␈αcommen␈α␈t.
␈βπr␈↓ α6␈∧πrα6αλQ
␈βλ≥␈↓ α␈ε"In␈α	the␈α	|rst␈αλexample␈α	of␈α	inde|nite␈α	iteration,␈α	the␈α	\n␈α↓ormal"␈α	situation␈α	w␈α␈as␈α	to␈αλcon␈α␈tin␈α␈ue
␈βλH␈↓ ↓H␈ε"the␈α
iteration;␈α∞the␈α
\special"␈α
case␈α∞w␈α␈as␈α
the␈α
sen␈α␈tinel␈α
which␈α∞stopped␈α
it.␈α∀In␈α
the␈α
follo␈α␈wing
␈βλs␈↓ ↓H␈ε"example,␈αw␈α␈e␈α\n␈α↓ormally"␈αomit␈αthe␈αiteration␈αen␈α␈tirely,␈αor␈αdo␈αit␈αonly␈αonce,␈αy␈α␈et␈αit␈αcan␈αbe
␈β	≡␈↓ ↓H␈ε"done␈αas␈αo$en␈αas␈αneeded.
␈β	K␈↓ α␈ε"If␈α∞in␈α∞a␈α∞certain␈α∞program␈α
w␈α␈e␈α∞w␈α␈an␈α␈t␈α∞to␈α∞read␈α∞in␈α∞a␈α∞n␈α␈um␈α␈ber␈α
bet␈α␈w␈α␈een␈α∞one␈α∞and␈α∞ten,␈α∞w␈α␈e
␈β	v␈↓ ↓H␈ε"can␈αuse␈αan␈αinde|nite␈αiteration␈αto␈αcheck␈αthat␈αthe␈αn␈α␈um␈α␈ber␈αlies␈αwithin␈αthese␈αlimits,␈αand
␈β
!␈↓ ↓H␈ε"prompt␈αand␈αread␈αagain␈αif␈αit␈αdoes␈αn␈α↓ot:
␈β
←␈↓ ↓{␈ε∃WRITELN(TTY,'ON␈↓ ∧␈ε∃A␈↓ ∧-␈ε∃SCALE␈↓ ¬∪␈ε∃OF␈↓ ¬F␈ε∃1␈↓ ¬h␈ε∃TO␈↓ ε≠␈ε∃10,␈↓ ε←␈ε∃HOW␈↓ π#␈ε∃DO␈↓ πV␈ε∃YOU␈↓ λ~␈ε∃RATE␈↓ λo␈ε∃THIS␈↓ 	D␈ε∃COURSE?');
␈βπ␈↓ ↓{␈ε∃BREAK(TTY);
␈β/␈↓ ↓{␈ε∃READ(TTY,␈↓ β%␈ε∃RATING);
␈βV␈↓ ↓{␈ε∃WHILE␈↓ αa␈ε∃(RATING␈↓ βi␈ε∃<␈↓ ∧␈ε∃1)␈↓ ∧>␈ε∃OR␈↓ ∧q␈ε∃(RATING␈↓ ¬y␈ε∃>10)␈↓ εN␈ε∃DO
␈β}␈↓ ββ␈ε∃BEGIN
␈β%␈↓ ββ␈ε∃WRITELN(TTY,␈↓ ∧`␈ε∃'I␈↓ ¬∪␈ε∃SAID␈↓ ¬h␈ε∃1␈↓ ε
␈ε∃TO␈↓ ε=␈ε∃10.␈↓ π↓␈ε∃AGAIN');
␈βM␈↓ ββ␈ε∃BREAK(TTY);
␈βu␈↓ ββ␈ε∃READ(TTY,␈↓ ∧-␈ε∃RATING);
␈β
≤␈↓ ββ␈ε∃END;
␈β
D␈↓ ↓{␈ε∃(remainder␈↓ β6␈ε∃of␈↓ βi␈ε∃program)
␈β∞α␈↓ α␈ε"Notice␈α	that␈α	this␈α
part␈α	of␈α	the␈α	program␈α
will␈α	k␈α␈eep␈α	repeating␈α	un␈α␈til␈α	it␈α
succeeds,␈α	guaran-
␈β∞.␈↓ ↓H␈ε"teeing␈αthat␈αwhen␈αit␈αis␈αdone,␈↓ εβ␈ε"is␈αbet␈α␈w␈α␈een␈α1␈αand␈α10.
␈β∞0␈↓ ¬ε␈ε5RA␈α␈TING
␈β∞Z␈↓ α␈ε"If␈αw␈α␈e␈αhad␈αwritten
␈β∂3␈↓ πZ␈ε".␈αε.␈αε.
␈β∂5␈↓ αX␈ε5IF␈α∩(RATING<1␈α␈)␈α∪OR␈α∪(RATI␈α␈NG>10)␈α∪THE␈α␈N
␈β⊃≠

␈β↓H␈↓ ↓$␈∧↓H↓$α
u
␈β↓J␈↓ ↓$␈∧↓J↓$Hα␈↓ α→␈∧↓Jα→Hα␈↓ ↔␈∧↓J↔Hα
␈β↓V␈↓ ¬v␈ε>Inde|n␈α␈ite␈α∞I␈α↓t␈α␈e␈α↓r␈α␈a␈α↓t␈α␈ion
␈β↓\␈↓ ↓M␈ε"72
␈βα⊃␈↓ ↓$␈∧α⊃↓$α
u
␈βαO␈↓ ↓H␈ε"the␈α∞program␈α∂w␈α␈ould␈α∞correct␈α∂one␈α∂mistak␈α␈e,␈α∂but␈α∂n␈α↓ot␈α∞check␈α∂for␈α∞a␈α∂second,␈α∂and␈α∂the␈α∞later
␈βαz␈↓ ↓H␈ε"parts␈α
of␈α
the␈α
program␈αmigh␈α␈t␈α
be␈α
executed␈α
with␈α
a␈α
v␈α}alue␈α
of␈↓ 	I␈ε"outside␈α
the␈α
1␈αto␈α
10
␈βα|␈↓ λJ␈ε5RATING
␈ββ%␈↓ ↓H␈ε"range.
␈β⊃_

␈β↓H␈↓ ↓$␈∧↓H↓$α
u
␈β↓J␈↓ ↓$␈∧↓J↓$Hα␈↓ "␈∧↓J"Hα␈↓ ↔␈∧↓J↔Hα
␈β↓V␈↓ ¬∞␈ε>P␈α↓r␈α␈og␈α␈ram␈α∞F␈α⎇or␈α␈mat
␈β↓\␈↓ K␈ε"73
␈βα⊃␈↓ ↓$␈∧α⊃↓$α
u
␈βαT␈↓ ↓H␈ε>Pro␈α␈gr␈α␈a␈α↓m␈α∞F␈α|orm␈α␈a␈α↓t␈α␈.
␈ββ↔␈↓ α␈ε"By␈αλthe␈αλappropriate␈αλuse␈αλof␈αλinden␈α␈tation,␈α	the␈αλstructure␈αλof␈αλa␈αλprogram␈αλcan␈αλbe␈αλdispla␈α␈y␈α␈ed
␈ββB␈↓ ↓H␈ε"clearly.␈α∪Programs␈α
sh␈α↓ould␈α∞be␈α
written␈α
so␈α
that␈α
when␈α∞someone␈α
sees␈α
an␈α
iterativ␈α␈e␈α
clause,
␈ββn␈↓ ↓H␈ε"he␈α∂can␈α⊂tell␈α∂at␈α⊂a␈α⊂glance␈α∂h␈α↓o␈α␈w␈α⊂m␈α␈uch␈α∂of␈α⊂the␈α∂program␈α⊂is␈α⊂iterated,␈α⊂and␈α⊂when␈α∂he␈α⊂sees␈α∂a
␈β∧→␈↓ ↓H␈ε"conditional␈αclause,␈αhe␈αcan␈αtell␈αat␈αa␈αglance␈αh␈α↓o␈α␈w␈αm␈α␈uch␈αof␈αthe␈αprogram␈αis␈αskipped␈αwhen
␈β∧D␈↓ ↓H␈ε"the␈α⊂condition␈α⊂is␈α⊃false.␈α≥W␈α⎇e␈α⊂recommend␈α⊃a␈α⊂form␈α⊃in␈α⊂which␈α⊂the␈α⊃iterativ␈α␈e␈α⊂command␈α⊂is
␈β∧o␈↓ ↓H␈ε"written␈α∞with␈α∂the␈α∞iterativ␈α␈e␈α∞clause␈α∂on␈α∞one␈α∂line,␈α∂and␈α∞the␈α∂iterated␈α∞command␈α∂on␈α∞one␈α∞or
␈β¬~␈↓ ↓H␈ε"m␈α↓ore␈α⊃subsequen␈α␈t␈α⊃lines,␈α∩inden␈α␈ted␈α⊃by␈α∩perhaps␈α⊃three␈α⊃spaces␈α⊃m␈α↓ore␈α⊃than␈α⊃the␈α⊃iterativ␈α␈e
␈β¬F␈↓ ↓H␈ε"clause,␈αth␈α␈us:
␈βε↓␈↓ αP␈ε∃S:=0;
␈βε)␈↓ αP␈ε∃FOR␈↓ β∀␈ε∃I:=1␈↓ βi␈ε∃TO␈↓ ∧≤␈ε∃N␈↓ ∧>␈ε∃DO
␈βεQ␈↓ ββ␈ε∃BEGIN
␈βεx␈↓ ββ␈ε∃S␈↓ β%␈ε∃:=␈↓ βX␈ε∃S␈↓ βz␈ε∃+␈↓ ∧≤␈ε∃I␈↓ ∧>␈ε∃*␈↓ ∧`␈ε∃I␈↓ ¬α␈ε∃*␈↓ ¬$␈ε∃I;
␈βπ ␈↓ ββ␈ε∃WRITELN(I,S)
␈βπG␈↓ ββ␈ε∃END;
␈βπo␈↓ αP␈ε∃WRITELN('*****')
␈βλ*␈↓ ↓H␈ε"If␈αthe␈αiterated␈αcommand␈αis␈αv␈α␈ery␈αsimple,␈αit␈α
ma␈α␈y␈αbe␈αwritten␈αon␈αthe␈αsame␈αline␈αwith␈αthe
␈βλU␈↓ ↓H␈ε"iterativ␈α␈e␈αclause:
␈β	∨␈↓ αX␈ε5FO␈α␈R␈α∪I:=␈α∪1␈α∪TO␈α∩N␈α∪DO␈α∪WRIT␈α␈E(1/I)
␈β	d␈↓ α␈ε"F␈α⎇or␈αconditional␈αcommands,␈αw␈α␈e␈αrecommend␈αthe␈αform
␈β
≡␈↓ ββ␈ε7E
␈β
 ␈↓ αP␈ε∃IF␈↓ β<␈ε∃THEN
␈β
E␈↓ ββ␈ε7C
␈β
Q␈↓ β↔␈ε&1
␈β
o␈↓ αP␈ε∃ELSE
␈β∃␈↓ ββ␈ε7C
␈β ␈↓ β↔␈ε&2
␈βR␈↓ ↓H␈ε"where␈↓ α2␈ε6C␈↓ αf␈ε"and␈↓ β.␈ε6C␈↓ βc␈ε"are␈α∞inden␈α␈ted␈α∞m␈α↓ore␈α∞than␈α∞the␈↓ π\␈ε"and␈↓ λ⎇␈ε"lines.␈α⊗If␈↓ 
	␈ε6C␈↓ 
>␈ε"and␈α∞and␈↓ M␈ε6C
␈βT␈↓ π(␈ε5IF␈↓ λ$␈ε5ELSE
␈β↑␈↓ αH␈ε%1␈↓ βD␈ε%2␈↓ 
∨␈ε%1␈↓ d␈ε%2
␈β⎇␈↓ ↓H␈ε"are␈αv␈α␈ery␈αsimple,␈αthey␈αcan␈αbe␈αwritten␈αon␈αthe␈αsame␈αlines␈αas␈αthe␈αconditions:
␈β7␈↓ ββ␈ε7E␈↓ ∧␈ε7C
␈β9␈↓ αP␈ε∃IF␈↓ β+␈ε∃THEN
␈βB␈↓ ∧∀␈ε&1
␈β↑␈↓ β%␈ε7C
␈β`␈↓ αP␈ε∃ELSE
␈βj␈↓ β9␈ε&2
␈β
≤␈↓ ↓H␈ε"or␈αev␈α␈en
␈β
c␈↓ β⊂␈ε6E␈↓ ∧≠␈ε6C␈↓ ¬3␈ε6C
␈β
e␈↓ αX␈ε5IF␈↓ β<␈ε5THEN␈↓ ∧U␈ε5E␈α␈LSE
␈β
o␈↓ ∧1␈ε%1␈↓ ¬I␈ε%2
␈β∞*␈↓ ↓H␈ε"Most␈αof␈αour␈αexamples␈αare␈αinden␈α␈ted␈αaccording␈αto␈αthese␈αcon␈α␈v␈α␈en␈α␈tions.
␈β∞U␈↓ α␈ε"The␈αreader␈αwill␈α|nd␈αthat␈αwhen␈αhe␈αhas␈αto␈αmak␈α␈e␈αcorrections␈αto␈αhis␈αprograms␈α(and
␈β∂↓␈↓ ↓H␈ε"he␈α
will␈α
spend␈α
a␈α	signi|can␈α␈t␈α
fraction␈α
of␈α
his␈α
programming␈α
career␈α
doing␈α
just␈α
that),␈α
he␈α
will
␈β∂,␈↓ ↓H␈ε"|nd␈αit␈αm␈α␈uch␈αeasier␈αto␈αcorrect␈αa␈αprogram␈αwritten␈αwith␈αsystematic␈αuse␈αof␈αinden␈α␈tation.
␈β⊃_

␈β↓H␈↓ ↓$␈∧↓H↓$α
u
␈β↓J␈↓ ↓$␈∧↓J↓$Hα␈↓ α→␈∧↓Jα→Hα␈↓ ↔␈∧↓J↔Hα
␈β↓V␈↓ ε	␈ε>P␈α↓r␈α␈og␈α␈ram␈α∞F␈α⎇or␈α␈mat
␈β↓\␈↓ ↓M␈ε"74
␈βα⊃␈↓ ↓$␈∧α⊃↓$α
u
␈βαZ␈↓ α␈ε"F␈α⎇or␈αexample,␈αto␈α|nd␈αwhat␈αthe␈αfollo␈α␈wing␈αn␈α↓onsense␈αprogram␈αdoes:
␈ββ_␈↓ αP␈ε∃FOR␈↓ β∀␈ε∃I:=␈↓ βX␈ε∃1␈↓ βz␈ε∃TO␈↓ ∧-␈ε∃3␈↓ ∧O␈ε∃DO
␈ββ?␈↓ ββ␈ε∃BEGIN
␈ββg␈↓ ββ␈ε∃WRITE('A');
␈β∧∞␈↓ ββ␈ε∃IF␈↓ β6␈ε∃I␈↓ βX␈ε∃=␈↓ βz␈ε∃2␈↓ ∧≤␈ε∃THEN
␈β∧6␈↓ β6␈ε∃WRITE('B')
␈β∧↑␈↓ ββ␈ε∃ELSE
␈⬬␈↓ β6␈ε∃BEGIN
␈β¬-␈↓ β6␈ε∃WRITE('C');
␈β¬T␈↓ β6␈ε∃FOR␈↓ βz␈ε∃J:=␈↓ ∧>␈ε∃1␈↓ ∧`␈ε∃TO␈↓ ¬∪␈ε∃2␈↓ ¬5␈ε∃DO
␈β¬|␈↓ βi␈ε∃WRITE('D')
␈βε$␈↓ β6␈ε∃WRITE('E')
␈βεK␈↓ β6␈ε∃END
␈βεs␈↓ ββ␈ε∃END;
␈βπ~␈↓ αP␈ε∃WRITE('F');
␈βπB␈↓ αP␈ε∃FOR␈↓ β∀␈ε∃K:=1␈↓ βi␈ε∃TO␈↓ ∧≤␈ε∃4␈↓ ∧>␈ε∃DO
␈βπj␈↓ ββ␈ε∃IF␈↓ β6␈ε∃K␈↓ βX␈ε∃<>␈↓ ∧␈ε∃3␈↓ ∧-␈ε∃THEN␈↓ ¬α␈ε∃WRITE('G')
␈βλ&␈↓ ↓H␈ε"one␈α
starts␈α
with␈α
the␈α
m␈α↓ost␈α
inden␈α␈ted␈α
sections,␈α
|nding␈α
in␈α
turn␈α
the␈α
follo␈α␈wing␈α
equiv␈α}alences:
␈β⊃_

␈β↓H␈↓ ↓$␈∧↓H↓$α
u
␈β↓J␈↓ ↓$␈∧↓J↓$Hα␈↓ "␈∧↓J"Hα␈↓ ↔␈∧↓J↔Hα
␈β↓V␈↓ ¬∞␈ε>P␈α↓r␈α␈og␈α␈ram␈α∞F␈α⎇or␈α␈mat
␈β↓\␈↓ K␈ε"75
␈βα⊃␈↓ ↓$␈∧α⊃↓$α
u
␈βαT␈↓ ¬P␈∧αT¬P(α
␈βαX␈↓ αX␈ε5FO␈α␈R␈α∪J:=␈α∪1␈α∪TO␈α∩2␈α∪DO␈↓ ¬u␈ε5WRITE('D␈α␈D');
␈βα|␈↓ ¬P␈∧α|¬P(α
␈ββ␈↓ αk␈ε5W␈α␈RITE('D')
␈ββ#␈↓ αX␈∧β#αXαπ≠
␈ββ%␈↓ ¬P␈∧β%¬P(α
␈ββL␈↓ ¬P␈∧βL¬P(α
␈ββP␈↓ αX␈ε5BE␈α␈GIN␈↓ ¬u␈ε5WRITE('C␈α␈DDE')
␈ββt␈↓ ¬P␈∧βt¬P(α
␈ββx␈↓ αX␈ε5WR␈α␈ITE('C');
␈β∧≤␈↓ ¬P␈∧∧≤¬P(α
␈β∧ ␈↓ αX␈ε5FO␈α␈R␈α∪J:=1␈α∪TO␈α∩2␈α∪DO
␈β∧C␈↓ ¬P␈∧∧C¬P(α
␈β∧G␈↓ αk␈ε5W␈α␈RITE('D');
␈β∧k␈↓ ¬P␈∧∧k¬P(α
␈β∧o␈↓ αX␈ε5WR␈α␈ITE('E')
␈β¬∩␈↓ ¬P␈∧¬∩¬P(α
␈β¬⊗␈↓ αX␈ε5EN␈α␈D
␈β¬:␈↓ αX␈∧¬:αXαπ≠
␈β¬;␈↓ ¬P␈∧¬;¬P(α
␈β¬c␈↓ ¬P␈∧¬c¬P(α
␈β¬g␈↓ αX␈ε5BE␈α␈GIN␈↓ ¬u␈ε5IF␈α∪I␈α∪=␈α∪2␈α∩THEN
␈βε␈↓ ¬P␈∧ε¬P(α
␈βε∂␈↓ αX␈ε5WR␈α␈ITE('A');␈↓ ελ␈ε5WRITE('␈α␈AB')
␈βε2␈↓ ¬P␈∧ε2¬P(α
␈βε6␈↓ αX␈ε5IF␈α∩I␈α∪=␈α∪2␈α∪THE␈α␈N␈↓ ¬u␈ε5ELSE
␈βεZ␈↓ ¬P␈∧εZ¬P(α
␈βε↑␈↓ αk␈ε5W␈α␈RITE('B')␈↓ ελ␈ε5WRITE('␈α␈ACDDE')
␈βπ↓␈↓ ¬P␈∧π↓¬P(α
␈βπ¬␈↓ αX␈ε5EL␈α␈SE
␈βπ)␈↓ ¬P␈∧π)¬P(α
␈βπ-␈↓ αk␈ε5B␈α␈EGIN
␈βπQ␈↓ ¬P␈∧πQ¬P(α
␈βπU␈↓ αk␈ε5W␈α␈RITE('C');
␈βπx␈↓ ¬P␈∧πx¬P(α
␈βπ|␈↓ αk␈ε5F␈α␈OR␈α∪J:=1␈α∪TO␈α∩2␈α∪DO
␈βλ ␈↓ ¬P␈∧λ ¬P(α
␈βλ$␈↓ α⎇␈ε5WRITE('D')␈α␈;
␈βλG␈↓ ¬P␈∧λG¬P(α
␈βλK␈↓ αk␈ε5W␈α␈RITE('E');
␈βλo␈↓ ¬P␈∧λo¬P(α
␈βλs␈↓ αk␈ε5E␈α␈ND
␈β	↔␈↓ ¬P␈∧	↔¬P(α
␈β	≠␈↓ αX␈ε5EN␈α␈D
␈β	>␈↓ αX␈∧	>αXαπ≠
␈β	@␈↓ ¬P␈∧	@¬P(α
␈β	g␈↓ ¬P␈∧	g¬P(α
␈β	k␈↓ αX␈ε5Th␈α␈e␈α∪entire␈α∪p␈α␈rogram␈↓ ¬u␈ε5WRITE('A␈α␈CDDEABACDD␈α␈EFGGG')
␈β
*␈↓ ↓H␈ε"In␈αbrief,␈αthe␈α
inden␈α␈ted␈αregions␈αare␈α
signi|can␈α␈t␈αunits,␈αwhich␈α
can␈αbe␈αanalyzed␈αindepend-
␈β
U␈↓ ↓H␈ε"en␈α␈tly.␈α∀In␈α∞programming␈α
courses,␈α∞graders␈α
and␈α∞programming␈α
consultan␈α␈ts␈α∞sh␈α↓ould␈α
insist
␈β␈↓ ↓H␈ε"on␈αsystematic␈αuse␈αof␈αcommen␈α␈ts␈αand␈αinden␈α␈tation.
␈β⊃_

␈β↓H␈↓ ↓$␈∧↓H↓$α
u
␈β↓J␈↓ ↓$␈∧↓J↓$Hα␈↓ α→␈∧↓Jα→Hα␈↓ ↔␈∧↓J↔Hα
␈β↓V␈↓ ¬␈ε>Mo␈α␈re␈α∂O␈α␈perator␈α␈s␈α∞a␈α↓n␈α␈d␈α∂F␈α|un␈α␈c␈α↓t␈α␈ion␈α␈s
␈β↓\␈↓ ↓M␈ε"76
␈βα⊃␈↓ ↓$␈∧α⊃↓$α
u
␈βα]␈↓ ↓H␈ε>M␈α␈or␈α␈e␈α∂Op␈α␈e␈α↓r␈α␈a␈α↓t␈α␈ors␈α∞and␈α∞F␈α⎇u␈α␈ncti␈α␈ons␈α␈.
␈ββ*␈↓ α␈ε"In␈αaddition␈αto␈αthe␈αfamiliar␈αarithmetic␈αoperators␈αand␈αfunctions␈αof␈αanalysis,␈αwh␈α↓ose
␈ββU␈↓ ↓H␈ε"represen␈α␈tation␈α∞in␈α∂Pascal␈α∂has␈α∞already␈α∂been␈α∂described,␈α∂there␈α∂are␈α∞a␈α∂n␈α␈um␈α␈ber␈α∂of␈α∞others,
␈β∧␈↓ ↓H␈ε"less␈αfamiliar,␈αbut␈αof␈αconsiderable␈αimportance␈αin␈αprogramming.
␈β∧5␈↓ ↓Z␈ε6∂␈↓ ↓}␈ε6E␈↓ αr␈ε6E␈↓ β⊗␈ε",␈↓ β,␈ε6E␈↓ ∧!␈ε6E
␈β∧7␈↓ α-␈ε5DIV␈↓ β\␈ε5MOD
␈β∧A␈↓ α⊃␈ε%1␈↓ β¬␈ε%2␈↓ β?␈ε%1␈↓ ∧4␈ε%2
␈β∧i␈↓ α␈ε"The␈αv␈α}alue␈αof␈↓ β]␈ε6E␈↓ ∧
␈ε"DIV␈↓ ∧Z␈ε6E␈↓ ¬
␈ε"is␈αthe␈αin␈α␈teger␈αpart␈αof␈αthe␈αquotien␈α␈t␈↓ 	'␈ε(␈↓ 	N␈ε"/␈↓ 	`␈ε(␈↓ 
λ␈ε",␈αwhere␈↓ ε␈ε(␈↓ :␈ε"and
␈β∧v␈↓ βp␈ε%1␈↓ ∧m␈ε%2␈↓ 	>␈ε%1␈↓ 	w␈ε%2␈↓ ≥␈ε%1
␈β¬∀␈↓ ↓H␈ε(␈↓ ↓|␈ε"are␈αin␈α␈tegers,␈αdiscarding␈α
an␈α␈y␈αremainder;␈αa␈α
t␈α␈ypical␈αuse␈αis␈αto␈α
|nd␈αh␈α↓o␈α␈w␈αman␈α␈y␈αobjects
␈β¬!␈↓ ↓←␈ε%2
␈β¬@␈↓ ↓H␈ε"of␈α
length␈↓ α\␈ε(␈↓ β
␈ε"can␈α
|t␈α
in␈α
a␈α
space␈↓ ¬≠␈ε(␈↓ ¬C␈ε".␈α∂If␈α
one␈α
cuts␈α
up␈α
a␈α
plank␈α
of␈α
length␈↓ 	i␈ε"and␈α
width␈↓ #␈ε",␈α
in␈α␈to
␈β¬B␈↓ 	L␈ε5A␈↓ ⊃␈ε5B
␈β¬L␈↓ αs␈ε%2␈↓ ¬2␈ε%1
␈β¬k␈↓ ↓H␈ε"shelv␈α␈es␈α	of␈α	length␈↓ βj␈ε"and␈α	width␈↓ ¬#␈ε",␈α	the␈α	n␈α␈um␈α␈ber␈α	of␈α	shelv␈α␈es␈α	which␈α	can␈α	be␈α	made␈α	is␈αλcomputed
␈β¬m␈↓ βN␈ε5C␈↓ ¬⊂␈ε5D
␈βε⊗␈↓ ↓H␈ε"by␈α
the␈α∞expression␈↓ εR␈ε".␈α∃The␈α
expression␈↓ λl␈ε6E␈↓ 	d␈ε6E␈↓ 
∃␈ε"designates␈α
the
␈βε_␈↓ βk␈ε5(A␈α∪DIV␈α∪C␈α␈)*(B␈α∪DIV␈α∪D␈α␈)␈↓ 	≥␈ε5MOD
␈βε"␈↓ λ␈␈ε%1␈↓ 	w␈ε%2
␈βεA␈↓ ↓H␈ε"remainder␈α
of␈α
the␈α
division␈↓ ∧c␈ε(␈↓ ¬␈ε"/␈↓ ¬≥␈ε(␈↓ ¬D␈ε".␈α∀F␈α⎇or␈α
example,␈α
the␈α
length␈α
of␈α
the␈α
piece␈α
of␈α
plank␈α
le$
␈βεN␈↓ ∧z␈ε%1␈↓ ¬4␈ε%2
␈βεl␈↓ ↓H␈ε"o␈α␈v␈α␈er␈αin␈αthe␈αprocess␈αdescribed␈αabo␈α␈v␈α␈e,␈αcould␈αbe␈αcomputed␈αby␈αthe␈αexpression␈↓ ←␈ε".
␈βεn␈↓ 
[␈ε5A␈α∩MOD␈α∪C
␈βπ!␈↓ α␈ε"In␈αm␈α↓ost␈αusage␈αof␈↓ ∧b␈ε"and␈↓ ε␈ε(␈↓ ε3␈ε"and␈↓ εy␈ε(␈↓ π-␈ε"are␈αpositiv␈α␈e␈αn␈α␈um␈α␈bers.␈α⊂When␈αthey␈αare
␈βπ#␈↓ ∧≥␈ε5DIV␈↓ ¬(␈ε5MOD,
␈βπ-␈↓ ε↔␈ε%1␈↓ π⊂␈ε%2
␈βπL␈↓ ↓H␈ε"positiv␈α␈e,␈↓ αW␈ε(␈↓ β␈ε"div␈↓ βJ␈ε(␈↓ β␈␈ε"is␈α
the␈α
n␈α␈um␈α␈ber␈α∞of␈α
times␈↓ εs␈ε(␈↓ π(␈ε"could␈α
be␈α
subtracted␈α
from␈↓ 
D␈ε(␈↓ 
y␈ε"with␈α↓out
␈βπY␈↓ αn␈ε%1␈↓ βa␈ε%2␈↓ π
␈ε%2␈↓ 
[␈ε%1
␈βπw␈↓ ↓H␈ε"getting␈αa␈αnegativ␈α␈e␈αn␈α␈um␈α␈ber,␈αand␈↓ ¬@␈ε(␈↓ ε8␈ε(␈↓ εl␈ε"is␈αthe␈αresult␈αof␈αthese␈αsubtractions.
␈βπy␈↓ ¬s␈ε5MOD
␈βλ∧␈↓ ¬W␈ε%1␈↓ εO␈ε%2
␈βλ,␈↓ α␈ε"The␈↓ β→␈ε"operator␈αis␈αa␈αperiodic␈αfunction␈αof␈↓ π&␈ε(␈↓ πY␈ε"(at␈αleast,␈αas␈αlong␈αas␈↓ 
⊂␈ε(␈↓ 
C␈ε"is␈αpositiv␈α␈e);
␈βλ.␈↓ αU␈ε5MOD
␈βλ8␈↓ π=␈ε%1␈↓ 
'␈ε%1
␈βλW␈↓ ↓H␈ε"if␈↓ ↓k␈ε(␈↓ α ␈ε"is␈α
an␈α
in␈α␈teger␈α
and␈α
does␈α
n␈α↓ot␈α
change,␈α
and␈↓ π∀␈ε(␈↓ πI␈ε"goes␈α
through␈α
the␈α
series␈α
of␈α
v␈α}alues␈α
0,
␈βλd␈↓ αα␈ε%2␈↓ π+␈ε%1
␈β	α␈↓ ↓H␈ε"1,␈α
2,␈α∞3,␈↓ αD␈ε".␈αε.␈αε.␈↓ αt␈ε",␈α∞the␈α
v␈α}alue␈α
of␈↓ ∧T␈ε(␈↓ ¬	␈ε"m␈α↓od␈↓ ¬\␈ε(␈↓ ε⊃␈ε"becomes␈α
successiv␈α␈ely␈α
0,␈α∞1,␈α
2,␈↓ 	a␈ε".␈αε.␈αε.␈↓ 
⊃␈ε",␈↓ 
(␈ε(␈↓ 
P␈ε"-1,␈α
0,␈α∞1,␈α
2,
␈β	∂␈↓ ∧k␈ε%1␈↓ ¬s␈ε%2␈↓ 
?␈ε%2
␈β	.␈↓ ↓H␈ε".␈αε.␈αε.␈↓ ↓x␈ε",␈↓ α⊂␈ε(␈↓ α8␈ε"-1,␈α∂0,␈α∞1,␈α∂2,␈↓ βo␈ε".␈αε.␈αε.␈↓ ∧∨␈ε";␈α∂because␈α∞of␈α∞this,␈α∂when␈α∞w␈α␈e␈α∞w␈α␈an␈α␈t␈α∞a␈α∞certain␈α∞process␈α∞carried␈α∞out
␈β	:␈↓ α'␈ε%2
␈β	Y␈↓ ↓H␈ε"periodically␈α
during␈α
an␈αiteration,␈α
w␈α␈e␈αt␈α␈ypically␈α
use␈α
the␈↓ λC␈ε"operator␈α
(in␈α
the␈αform
␈β	[␈↓ λ␈ε5MO␈α␈D␈↓ ⊗␈ε5I␈α∪MOD
␈β
∧␈↓ ↓[␈ε",␈α
where␈↓ αs␈ε"is␈α
the␈αiteration␈α
v␈α}ariable␈α
and␈↓ εI␈ε"is␈αthe␈α
period)␈α
as␈αpart␈α
of␈αthe␈α
condition␈α
which
␈β
ε␈↓ ↓H␈ε5P␈↓ αU␈ε5I␈↓ ε,␈ε5P
␈β
/␈↓ ↓H␈ε"determines␈α∂whether␈α∂the␈α∂process␈α∂is␈α⊂carried␈α∂out.␈α→F␈α⎇or␈α⊂example,␈α⊂to␈α∂prin␈α␈t␈α∂a␈α∂blank␈α∂line
␈β
Z␈↓ ↓H␈ε"a$er␈αev␈α␈ery␈α|v␈α␈e␈αlines␈αof␈αa␈αtable,␈αone␈αmigh␈α␈t␈αwrite
␈β!␈↓ αP␈ε∃FOR␈↓ β∀␈ε∃I:=1␈↓ βi␈ε∃TO␈↓ ∧≤␈ε∃100␈↓ ∧`␈ε∃DO
␈βI␈↓ ββ␈ε∃BEGIN
␈βp␈↓ ββ␈ε∃WRITELN(I,SQRT(I));
␈β_␈↓ ββ␈ε∃IF␈↓ β6␈ε∃I␈↓ βX␈ε∃MOD␈↓ ∧≤␈ε∃5␈↓ ∧>␈ε∃=␈↓ ∧`␈ε∃0␈↓ ¬α␈ε∃THEN
␈β@␈↓ β6␈ε∃BEGIN
␈βg␈↓ β6␈ε∃WRITELN
␈β
∂␈↓ β6␈ε∃END
␈β
6␈↓ ββ␈ε∃END
␈β∞ε␈↓ α␈ε"As␈αan␈α↓other␈α
example␈αof␈αthe␈αuse␈α
of␈↓ ε]␈ε"and␈↓ πx␈ε"suppose␈αw␈α␈e␈αw␈α␈an␈α␈t␈α
to␈αprin␈α␈t␈αa␈α
table
␈β∞λ␈↓ ε~␈ε5DIV␈↓ π"␈ε5MOD,
␈β∞1␈↓ ↓H␈ε"of␈α∂ro␈α↓ots␈α∂with␈↓ βJ␈ε"en␈α␈tries,␈α⊂placing␈↓ ¬m␈ε"of␈α∂them␈α∂on␈α∂each␈α⊂line,␈α⊂with␈α∂the␈α∂last␈α∂line␈α∂perhaps
␈β∞3␈↓ β(␈ε5A␈↓ ¬K␈ε5B
␈β∞\␈↓ ↓H␈ε"partially␈α
full;␈αw␈α␈e␈αmigh␈α␈t␈αdecompose␈α
the␈αproblem␈αin␈αeither␈α
of␈αt␈α␈w␈α␈o␈αw␈α␈a␈α␈ys.␈α∂In␈αthe␈α
|rst,␈αw␈α␈e
␈β∂λ␈↓ ↓H␈ε"iterate,␈↓ αc␈ε"times,␈αthe␈αprin␈α␈ting␈αof␈αthe␈αsquare␈αro␈α↓ot,␈αa$erw␈α␈ards␈αgoing␈αon␈αto␈αa␈αnew␈αline␈αif
␈β∂
␈↓ αD␈ε5A
␈β∂3␈↓ ↓H␈ε"the␈αn␈α␈um␈α␈ber␈αwh␈α↓ose␈αro␈α↓ot␈αis␈αtak␈α␈en␈αis␈αa␈αm␈α␈ultiple␈αof␈↓ πS␈ε",␈αi.e.,␈αif␈↓ 
≡␈ε",␈αth␈α␈us:
␈β∂5␈↓ π@␈ε5B␈↓ λO␈ε5I␈α∩MOD␈α∪B␈α∪=␈α∪0
␈β⊃∨

␈β↓H␈↓ ↓$␈∧↓H↓$α
u
␈β↓J␈↓ ↓$␈∧↓J↓$Hα␈↓ "␈∧↓J"Hα␈↓ ↔␈∧↓J↔Hα
␈β↓V␈↓ ∧⊂␈ε>Mo␈α␈re␈α∂O␈α␈perator␈α␈s␈α∞a␈α↓n␈α␈d␈α∂F␈α|un␈α␈c␈α↓t␈α␈ion␈α␈s
␈β↓\␈↓ K␈ε"77
␈βα⊃␈↓ ↓$␈∧α⊃↓$α
u
␈βαN␈↓ αP␈ε∃VAR␈↓ β∀␈ε∃A,␈↓ βG␈ε∃B␈↓ βi␈ε∃:␈↓ ∧␈ε∃INTEGER;
␈βαu␈↓ αP␈ε∃BEGIN
␈ββ≥␈↓ αP␈ε∃READ(A);
␈ββD␈↓ αP␈ε∃READ(B);
␈ββl␈↓ αP␈ε∃FOR␈↓ β∀␈ε∃I:=1␈↓ βi␈ε∃TO␈↓ ∧≤␈ε∃A␈↓ ∧>␈ε∃DO
␈β∧∀␈↓ ββ␈ε∃BEGIN
␈β∧;␈↓ ββ␈ε∃WRITE(SQRT(I));
␈β∧c␈↓ ββ␈ε∃IF␈↓ β6␈ε∃I␈↓ βX␈ε∃MOD␈↓ ∧≤␈ε∃B␈↓ ∧>␈ε∃=␈↓ ∧`␈ε∃0␈↓ ¬α␈ε∃THEN␈↓ ¬W␈ε∃WRITELN
␈β¬
␈↓ ββ␈ε∃END
␈β¬2␈↓ αP␈ε∃END.
␈βεN␈↓ α␈ε"In␈αthe␈αsecond␈αdecomposition,␈αw␈α␈e␈αiterate␈α|rst␈αo␈α␈v␈α␈er␈αthe␈αlines␈αof␈αprin␈α␈ting,␈αth␈α␈us:
␈βπ<␈↓ αP␈ε∃VAR␈↓ β∀␈ε∃A,␈↓ βG␈ε∃B␈↓ βi␈ε∃:␈↓ ∧␈ε∃INTEGER;
␈βπc␈↓ αP␈ε∃BEGIN
␈βλ␈↓ αP␈ε∃READ(A);
␈βλ3␈↓ αP␈ε∃READ(B);
␈βλZ␈↓ αP␈ε∃FOR␈↓ β∀␈ε∃I:=1␈↓ βi␈ε∃TO␈↓ ∧≤␈ε∃A␈↓ ∧>␈ε∃DIV␈↓ ¬α␈ε∃B␈↓ ¬$␈ε∃DO␈↓ ¬W␈ε∃BEGIN
␈β	α␈↓ ββ␈ε∃Print␈↓ βi␈ε∃the␈↓ ∧-␈ε∃I-th␈↓ ¬α␈ε∃full␈↓ ¬W␈ε∃line
␈β	)␈↓ αP␈ε∃END;
␈β	Q␈↓ αP␈ε∃Print␈↓ β6␈ε∃A␈↓ βX␈ε∃MOD␈↓ ∧≤␈ε∃B␈↓ ∧>␈ε∃leftovers
␈β	y␈↓ αP␈ε∃END.
␈β∃␈↓ ↓H␈ε"The␈αdesign␈αof␈αthis␈αprogram␈αis␈αsimpli|ed␈αby␈αobserving:
␈βp␈↓ ↓Z␈ε6∂␈↓ ↓}␈ε"The␈αn␈α␈um␈α␈ber␈αof␈αfull␈αlines␈αis␈↓ ¬*␈ε(F␈↓ ¬P␈ε"=␈ε(␈α
A␈↓ π→␈ε(B␈↓ π4␈ε".
␈βr␈↓ ε<␈ε5DIV
␈βK␈↓ ↓Z␈ε6∂␈↓ ↓}␈ε"The␈αn␈α␈um␈α␈ber␈αof␈αitems␈αon␈αthe␈α|rst␈↓ ε∞␈ε(I␈↓ ε+␈ε"lines␈α(␈↓ π	␈ε(I␈↓ π%␈ε6∀␈↓ πS␈ε(F␈↓ πo␈ε")␈αis␈↓ λ+␈ε(I␈↓ λE␈ε6α␈↓ λq␈ε(B␈↓ 	␈ε".
␈β
 ␈↓ αV␈ε+t␈α↓h
␈β
&␈↓ ↓Z␈ε6∂␈↓ ↓}␈ε"The␈↓ αE␈ε(I␈↓ α}␈ε"line␈α	(␈↓ βK␈ε(I␈↓ βg␈ε6∀␈↓ ∧∃␈ε(F␈↓ ∧1␈ε")␈α	th␈α␈us␈α	con␈α␈tains␈α	the␈α	square␈α	ro␈α↓ots␈α	of␈α	the␈α
n␈α␈um␈α␈bers␈α	from␈↓ 
←␈ε"(␈↓ 
k␈ε(I␈↓ ∧␈ε6␈␈ε"␈αλ1)␈↓ P␈ε6α
␈β
Q␈↓ α4␈ε(B␈↓ αW␈ε"+␈αλ1␈αthrough␈↓ ∧)␈ε(I␈↓ ∧C␈ε6α␈↓ ∧o␈ε(B␈↓ ¬
␈ε".
␈β∞-␈↓ ↓Z␈ε6∂␈↓ ↓}␈ε"The␈αline␈αof␈αle$o␈α␈v␈α␈ers␈αcon␈α␈tains␈αthe␈αsquare␈α
ro␈α↓ots␈αof␈αthe␈αn␈α␈um␈α␈bers␈αfrom␈α(␈↓ 
6␈ε(F␈↓ 
[␈ε6α␈↓ π␈ε(B␈↓ "␈ε")␈αλ+␈αλ1
␈β∞X␈↓ α4␈ε"through␈ε(␈αA␈ε".
␈β∂3␈↓ α␈ε"The␈αprogram␈αis␈αthen:
␈β⊃∨

␈β↓H␈↓ ↓$␈∧↓H↓$α
u
␈β↓J␈↓ ↓$␈∧↓J↓$Hα␈↓ α→␈∧↓Jα→Hα␈↓ ↔␈∧↓J↔Hα
␈β↓V␈↓ ¬␈ε>Mo␈α␈re␈α∂O␈α␈perator␈α␈s␈α∞a␈α↓n␈α␈d␈α∂F␈α|un␈α␈c␈α↓t␈α␈ion␈α␈s
␈β↓\␈↓ ↓M␈ε"78
␈βα⊃␈↓ ↓$␈∧α⊃↓$α
u
␈βαN␈↓ αP␈ε∃VAR␈↓ β∀␈ε∃A,␈↓ βG␈ε∃B,␈↓ βz␈ε∃F␈↓ ∧≤␈ε∃:␈↓ ∧>␈ε∃INTEGER;
␈βαu␈↓ αP␈ε∃BEGIN
␈ββ≥␈↓ αP␈ε∃READ(A);
␈ββD␈↓ αP␈ε∃READ(B);
␈ββl␈↓ αP␈ε∃F␈↓ αr␈ε∃:=␈↓ β%␈ε∃A␈↓ βG␈ε∃DIV␈↓ ∧␈ε∃B;␈↓ ∧>␈ε∃(*␈↓ ∧q␈ε∃NUMBER␈↓ ¬h␈ε∃OF␈↓ ε≠␈ε∃FULL␈↓ εp␈ε∃LINES␈↓ πV␈ε∃*)
␈β∧∀␈↓ αP␈ε∃FOR␈↓ β∀␈ε∃I:=␈↓ βX␈ε∃1␈↓ βz␈ε∃TO␈↓ ∧-␈ε∃F␈↓ ∧O␈ε∃DO␈↓ ¬α␈ε∃(*␈↓ ¬5␈ε∃I␈↓ ¬W␈ε∃COUNTS␈↓ εN␈ε∃LINES␈↓ π4␈ε∃*)
␈β∧;␈↓ ββ␈ε∃BEGIN
␈β∧c␈↓ ββ␈ε∃FOR␈↓ βG␈ε∃J␈↓ βi␈ε∃:=␈↓ ∧≤␈ε∃(I-1)*B+1␈↓ ¬F␈ε∃TO␈↓ ¬y␈ε∃I*B␈↓ ε=␈ε∃DO
␈β¬
␈↓ β6␈ε∃WRITE(SQRT(J));
␈β¬2␈↓ ββ␈ε∃WRITELN
␈β¬Z␈↓ ββ␈ε∃END;
␈βε↓␈↓ αP␈ε∃FOR␈↓ β∀␈ε∃J␈↓ β6␈ε∃:=␈↓ βi␈ε∃F*B+1␈↓ ∧O␈ε∃TO␈↓ ¬α␈ε∃A␈↓ ¬$␈ε∃DO
␈βε)␈↓ ββ␈ε∃WRITE(SQRT(J))
␈βεP␈↓ αP␈ε∃END.
␈βπ␈↓ α␈ε"Observ␈α␈e␈α∞that␈α∂in␈α∞this␈α∞instance,␈α∂taking␈α∞the␈α∞computation␈α∞and␈α∂prin␈α␈ting␈α∞of␈α∞a␈α∞single
␈βπ7␈↓ ↓H␈ε"square␈α∞ro␈α↓ot␈α∞as␈α∞the␈α∞iterated␈α∞command␈α∞resulted␈α∞in␈α∞a␈α∞simpler␈α
program␈α∞than␈α∞using␈α∞the
␈βπb␈↓ ↓H␈ε"prin␈α␈ting␈αof␈αa␈αline␈αas␈αthe␈αiterated␈αunit.␈α⊂O$en␈αthere␈αare␈αsev␈α␈eral␈αw␈α␈a␈α␈ys␈αof␈αlo␈α↓oking␈αat␈αthe
␈βλ∞␈↓ ↓H␈ε"structure␈αof␈αa␈α
computational␈αtask,␈α
and␈αone␈αma␈α␈y␈α
be␈αa␈αsimpler␈α
description,␈αleading␈αto
␈βλ9␈↓ ↓H␈ε"a␈αsimpler␈αprogram,␈αthan␈αan␈α↓other.
␈βλd␈↓ ↓Z␈ε6∂␈↓ α6␈ε"(␈↓ αB␈ε6E␈↓ α[␈ε")
␈βλf␈↓ ↓}␈ε5AB␈α␈S
␈β	∂␈↓ α␈ε"The␈α
absolute␈α
v␈α}alue,␈αor␈α
magnitude,␈↓ ε*␈ε"of␈ε(␈α
␈ε".␈α∂The␈α
m␈α↓ost␈α
importan␈α␈t␈α
use␈α
of␈α
this␈α
operator
␈β	:␈↓ ↓H␈ε"is␈αto␈αmeasure␈αthe␈αdi{erence␈↓ ¬:␈ε"(␈↓ ¬F␈ε6A␈↓ ¬g␈ε6␈␈↓ ε∪␈ε6B␈↓ ε,␈ε")␈αbet␈α␈w␈α␈een␈αt␈α␈w␈α␈o␈αn␈α␈um␈α␈bers␈↓ 	"␈ε6A␈↓ 	G␈ε"and␈↓ 

␈ε6B␈↓ 
&␈ε".
␈β	<␈↓ ¬α␈ε5AB␈α␈S
␈β	f␈↓ ↓Z␈ε6∂␈↓ α\␈ε"(␈↓ αh␈ε6E␈↓ β↓␈ε")
␈β	h␈↓ ↓}␈ε5TR␈α␈UNC
␈β
⊃␈↓ α␈ε"The␈αlargest␈αin␈α␈teger␈αwhich␈αdoes␈αn␈α↓ot␈αexceed␈ε(␈α␈ε";
␈β
\␈↓ αX␈ε(␈↓ ∧,␈ε"(␈ε(␈ε")␈↓ ¬&␈ε(
␈β
↑␈↓ αo␈ε5-1␈α∩<␈α∪TRUNC␈↓ ∧n␈ε5<␈α␈=
␈β(␈↓ ↓Z␈ε6∂␈↓ α\␈ε"(␈↓ αh␈ε6E␈↓ β↓␈ε")
␈β*␈↓ ↓}␈ε5RO␈α␈UND
␈βS␈↓ α␈ε"The␈αv␈α}alue␈αof␈ε(␈α␈ε",␈αrounded␈αto␈αthe␈αnearest␈αin␈α␈teger.
␈β~␈↓ ∧
␈ε%1␈↓ εM␈ε%1
␈β≡␈↓ βI␈ε(␈↓ ∧≥␈ε6∀␈ε(␈α
␈↓ ε␈ε(
␈β ␈↓ αX␈ε5RO␈α␈UND(␈↓ β`␈ε5)-␈↓ ∧u␈ε5<␈α∪ROU␈α␈ND(␈↓ ε#␈ε5)+
␈β/␈↓ ∧
␈ε%2␈↓ εM␈ε%2
␈β3␈↓ ∧
␈∧3∧
α⊂␈↓ εM␈∧3εMα⊂
␈βj␈↓ ↓H␈ε"F␈α⎇or␈α
example,␈↓ ∧⊗␈ε(␈↓ ∧S␈ε"is␈α
2␈α∞if␈α∞1.5␈ε6␈α
∀␈ε(␈α␈ε"␈α
<␈α
2.5.␈α∃If␈α∞one␈α∞computes␈α
a␈α∞n␈α␈um␈α␈ber␈↓ _␈ε"which
␈βl␈↓ β$␈ε5ROUND(␈↓ ∧-␈ε5)␈↓ 
x␈ε5X
␈β
∃␈↓ ↓H␈ε"w␈α␈ould␈α∂be␈α∂an␈α∂in␈α␈teger␈α⊂except␈α∂for␈α∂the␈α∂e{ect␈α⊂of␈α∂small␈α∂computational␈α∂errors,
␈β
↔␈↓ 
]␈ε5ROUND(X)
␈β
@␈↓ ↓H␈ε"giv␈α␈es␈αthe␈αexact␈αin␈α␈teger␈αv␈α}alue.
␈β
|␈↓ ↓H␈ε2Example
␈β∞(␈↓ α␈ε"The␈α∞British␈α
m␈α↓onetary␈α∞system␈α
has␈α∞undergone␈α∞a␈α
con␈α␈v␈α␈ersion␈α∞to␈α
a␈α∞decimal␈α
system.
␈β∞S␈↓ ↓H␈ε"Under␈αthe␈αold␈αsystem,
␈β∂
␈↓ αJ␈ε#1␈↓ αf␈ε#p␈α␈ou␈α␈nd␈↓ βK␈ε#=␈↓ βx␈ε#2␈α␈0␈↓ ∧$␈ε#shilli␈α↓n␈α␈gs␈↓ ¬$␈ε#=␈↓ ¬P␈ε#24␈α␈0␈↓ ε
␈ε#pen␈α␈ce
␈β∂5␈↓ αJ␈ε#1␈↓ αf␈ε#sh␈α␈il␈α↓ling␈↓ βX␈ε#=␈↓ ∧¬␈ε#1␈α␈2␈↓ ∧1␈ε#pe␈α␈nce␈α␈.
␈β⊃_

␈β↓H␈↓ ↓$␈∧↓H↓$α
u
␈β↓J␈↓ ↓$␈∧↓J↓$Hα␈↓ "␈∧↓J"Hα␈↓ ↔␈∧↓J↔Hα
␈β↓V␈↓ ∧⊂␈ε>Mo␈α␈re␈α∂O␈α␈perator␈α␈s␈α∞a␈α↓n␈α␈d␈α∂F␈α|un␈α␈c␈α↓t␈α␈ion␈α␈s
␈β↓\␈↓ K␈ε"79
␈βα⊃␈↓ ↓$␈∧α⊃↓$α
u
␈βαO␈↓ ↓H␈ε"Under␈αthe␈αnew␈αsystem,
␈ββ7␈↓ αX␈ε"1␈αpound␈α=␈α100␈αnew␈αpence.
␈β∧∨␈↓ ↓H␈ε"The␈αv␈α}alue␈αof␈↓ β8␈ε"shillings␈αplus␈↓ ¬-␈ε"pence␈αis
␈β∧!␈↓ β→␈ε5S␈↓ ¬∞␈ε5D
␈β∧a␈↓ αJ␈ε)S␈↓ αa␈ε#/2␈α␈0␈↓ β%␈ε#+␈↓ βY␈ε)D␈ε#/24␈α␈0␈↓ ∧B␈ε#p␈α␈oun␈α␈ds,␈↓ ¬>␈ε#or
␈β¬λ␈↓ αJ␈ε#1␈α␈00(␈↓ βπ␈ε)S␈↓ β≡␈ε#/2␈α␈0␈↓ βb␈ε#+␈↓ ∧⊗␈ε)D␈ε#/24␈α␈0)␈↓ ¬∪␈ε#=␈↓ ¬I␈ε#5(␈↓ ¬e␈ε)S␈↓ ε∞␈ε#+␈↓ εB␈ε)D␈ε#/12␈α␈)␈↓ π%␈ε#new␈↓ πj␈ε#p␈α␈enc␈α␈e.
␈β¬S␈↓ α␈ε"This␈α
is␈α∞n␈α↓ot␈α
alw␈α␈a␈α␈ys␈α∞an␈α
in␈α␈teger;␈α∞to␈α∞round␈α
to␈α∞the␈α
nearest␈α∞in␈α␈teger,␈α∞one␈α
w␈α␈ould␈α
write
␈β¬}␈↓ ↓H␈ε"in␈αPascal:
␈βεi␈↓ αX␈ε5P␈α∩:=␈α∪ROUND(5␈α␈*(S␈α∪+␈α∪D/12␈α␈))
␈βπO␈↓ ↓H␈ε"T␈α⎇o␈α∞con␈α␈v␈α␈ert␈α∂in␈α∞the␈α∞other␈α∂direction,␈α∂giv␈α␈en␈↓ εs␈ε"new␈α∞pence,␈α∂w␈α␈e␈α∂w␈α␈ould␈α∞|rst␈α∂|nd␈α∞the␈α∞total
␈βπQ␈↓ εQ␈ε5P
␈βπz␈↓ ↓H␈ε"n␈α␈um␈α␈ber␈αof␈αold␈αpence␈αby
␈βλd␈↓ αX␈ε5T␈α∩:=␈α∪ROUND(1␈α␈2␈α∪*␈α∪P/5)
␈β	J␈↓ ↓H␈ε"This␈αcan␈αbe␈αbrok␈α␈en␈αdo␈α␈wn␈αin␈α␈to␈αshillings␈αand␈α(old)␈αpence␈αby
␈β
∞␈↓ βG␈ε∃S␈↓ βi␈ε∃:=␈↓ ∧≤␈ε∃T␈↓ ∧>␈ε∃DIV␈↓ ¬α␈ε∃12;
␈β
6␈↓ βG␈ε∃D␈↓ βi␈ε∃:=␈↓ ∧≤␈ε∃T␈↓ ∧>␈ε∃MOD␈↓ ¬α␈ε∃12
␈β8␈↓ ↓H␈ε2Example
␈βi␈↓ α␈ε"A$er␈α∂computing␈α∂a␈α∂sales␈α∂tax␈α∂exactly␈α∂(in␈α∂dollars),␈α⊂one␈α∂w␈α␈an␈α␈ts␈α∂to␈α∂round␈α∂it␈α∂to␈α∂the
␈β∀␈↓ ↓H␈ε"nearest␈α
h␈α␈undredth␈α∞(i.e.,␈α
cen␈α␈t).␈α∃If␈↓ ¬y␈ε"is␈α
the␈α
exact␈α∞|gure␈α
in␈α∞dollars,␈↓ 
<␈ε"is␈α
the␈α
exact
␈β⊗␈↓ ¬X␈ε5T␈↓ 	P␈ε51␈α␈00*T
␈β?␈↓ ↓H␈ε"|gure␈αin␈αcen␈α␈ts,␈↓ ¬&␈ε"is␈αthe␈αrounded␈α|gure␈αin␈αcen␈α␈ts,␈αand
␈βA␈↓ β8␈ε5ROUN␈α␈D(100*T)␈↓ 	F␈ε5ROUND(␈α␈100*T)/100
␈βj␈↓ ↓H␈ε"is␈αthe␈αrounded␈α|gure␈αin␈αdollars.
␈β
U␈↓ ↓H␈ε2Exercise
␈β∞␈↓ α␈ε$One␈αm␈α↓et␈α␈er␈αi␈α␈s␈α3␈α↓9.37␈αinc␈α␈hes.␈α∩One␈αc␈α␈en␈α␈timete␈α␈r␈αis␈α1␈α↓/10␈α↓0␈αof␈α
a␈αmete␈α␈r.␈α∪W␈α⎇ri␈α␈te␈αa␈αprog␈α↓ram␈αto␈α
pri␈α␈n␈α␈t␈αa
␈β∞6␈↓ ↓H␈ε$c␈α␈o␈α↓n␈α␈v␈α␈er␈α␈sion␈α
table␈α
from␈αc␈α␈en␈α␈ti␈α␈m␈α↓e␈α␈ters␈α
to␈α
fee␈α␈t␈α
a␈α↓nd␈α
i␈α␈nche␈α␈s,␈α
rounded␈α
to␈α
the␈α
ne␈α␈arest␈α
i␈α␈nch.␈α
T␈α}abul␈α␈a␈α↓te␈α	fro␈α↓m␈α
1
␈β∞a␈↓ ↓H␈ε$to␈α	100␈α
c␈α␈en␈α␈ti␈α␈m␈α↓et␈α␈ers.␈α
Be␈αλcareful␈α	t␈α␈ha␈α↓t␈α	the␈αλlogic␈αλo␈α↓f␈α	y␈α␈our␈α	soluti␈α␈o␈α↓n␈α	i␈α␈s␈α	corre␈α␈ct;␈α	30␈α	ce␈α␈nt␈α␈imeter␈α␈s,␈α	fo␈α↓r␈αλexam␈α↓pl␈α␈e,
␈β∂
␈↓ ↓H␈ε$i␈α␈s␈α
1␈α↓1.␈α␈9␈α↓11␈α
inche␈α␈s,␈α
and␈α
it␈α
i␈α␈s␈αe␈α␈a␈α↓s␈α␈y␈αto␈α
write␈α	a␈αprogra␈α↓m␈α
which␈α
mistak␈α␈enl␈α␈y␈αc␈α␈onv␈α␈e␈α␈rts␈α
it␈α
to␈α
0␈αfee␈α␈t␈α12␈α
inc␈α␈hes,
␈β∂8␈↓ ↓H␈ε$or␈α
ev␈α␈en␈α
1␈α
fo␈ααot␈α
12␈αi␈α␈nches␈α␈.
␈β⊃_

␈β↓H␈↓ ↓$␈∧↓H↓$α
u
␈β↓J␈↓ ↓$␈∧↓J↓$Hα␈↓ α→␈∧↓Jα→Hα␈↓ ↔␈∧↓J↔Hα
␈β↓V␈↓ ¬␈ε>Mo␈α␈re␈α∂O␈α␈perator␈α␈s␈α∞a␈α↓n␈α␈d␈α∂F␈α|un␈α␈c␈α↓t␈α␈ion␈α␈s
␈β↓\␈↓ ↓M␈ε"80
␈βα⊃␈↓ ↓$␈∧α⊃↓$α
u
␈βαO␈↓ ↓H␈ε2Exercise
␈βα␈␈↓ α␈ε$The␈αn␈α␈umbe␈α␈r␈↓ β;␈ε*→␈↓ βN␈ε$,␈αto␈αten␈αde␈α␈cimal␈αplac␈α␈es,␈αi␈α␈s␈α3␈α↓.␈α␈14␈α↓159␈α↓265␈α↓4.␈α⊂A␈αfam␈α↓i␈α␈li␈α␈a␈α↓r␈αfracti␈α␈o␈α↓nal␈α
a␈α↓ppro␈α␈ximation␈αto
␈ββ*␈↓ ↓H␈ε*→␈↓ ↓f␈ε$i␈α␈s␈α22/7␈α↓,␈αor␈α3.␈α␈1␈α↓428␈α↓,␈αwhi␈α␈ch␈αis␈αin␈αerr␈α␈o␈α↓r␈αby␈αabout␈α0.␈α␈0␈α↓012␈α↓.␈α⊂F␈α↓i␈α␈nd␈αa␈αfra␈α↓c␈α␈tion␈ε*␈α␈ε$/␈↓ 	?␈ε*␈␈↓ 	R␈ε$,␈αwhere␈↓ 
@␈ε*␈␈↓ 
↑␈ε$is␈αl␈α␈ess␈αthan
␈ββU␈↓ ↓H␈ε$100␈α↓0,␈α	whic␈α␈h␈α
i␈α␈s␈α
i␈α␈n␈α
e␈α␈rror␈α
by␈α	les␈α␈s␈α
than␈α
0.␈α␈0␈α↓001␈α↓.␈α(␈α↓The␈α␈re␈α	is␈α	o␈α↓ne␈α	suc␈α␈h␈α
fracti␈α␈on␈α
whic␈α␈h␈α
di␈α␈{ers␈α	fro␈α↓m␈↓ 
u␈ε*→␈↓ ⊃␈ε$by␈α	o␈α↓nl␈α␈y
␈β∧↓␈↓ ↓H␈ε$about␈α
0␈α↓.␈α␈00␈α↓003␈α↓.␈α␈)
␈β⊃_

␈β↓H␈↓ ↓$␈∧↓H↓$α
u
␈β↓J␈↓ ↓$␈∧↓J↓$Hα␈↓ "␈∧↓J"Hα␈↓ ↔␈∧↓J↔Hα
␈β↓V␈↓ ¬k␈ε>Arr␈α␈a␈α␈y␈α↓s
␈β↓\␈↓ K␈ε"81
␈βα⊃␈↓ ↓$␈∧α⊃↓$α
u
␈βαT␈↓ ↓H␈ε>Arr␈α␈a␈α␈y␈α↓s.
␈ββ↔␈↓ α␈ε"Suppose␈α
w␈α␈e␈α
ch␈α↓o␈α↓ose␈α
to␈α
prin␈α␈t␈α
the␈α
v␈α}alues␈α
of␈↓ π!␈ε(f␈↓ πC␈ε",␈↓ πM␈ε(f␈↓ πp␈ε",␈↓ πz␈ε".␈αε.␈αε.␈↓ λ*␈ε",␈↓ λ4␈ε(f␈↓ λs␈ε"from␈α
the␈α
example␈αof␈α
the
␈ββ#␈↓ π3␈ε%1␈↓ π←␈ε%2␈↓ λF␈ε%24
␈ββB␈↓ ↓H␈ε"rabbit␈αbreeder␈αin␈αthree␈αcolumns:
␈β∧
␈↓ ¬S␈ε(f␈↓ ε>␈ε(f␈↓ π7␈ε(f
␈β∧⊗␈↓ ¬e␈ε%1␈↓ εO␈ε%9␈↓ πI␈ε%17
␈β∧5␈↓ ¬S␈ε(f␈↓ ε>␈ε(f␈↓ π7␈ε(f
␈β∧B␈↓ ¬e␈ε%2␈↓ εO␈ε%1␈α↓0␈↓ πI␈ε%18
␈β∧`␈↓ ¬S␈ε".␈↓ ε>␈ε".␈↓ π7␈ε".
␈β¬␈↓ ¬S␈ε".␈↓ ε>␈ε".␈↓ π7␈ε".
␈β¬7␈↓ ¬S␈ε".␈↓ ε>␈ε".␈↓ π7␈ε".
␈β¬b␈↓ ¬S␈ε(f␈↓ ε>␈ε(f␈↓ π7␈ε(f
␈β¬n␈↓ ¬e␈ε%8␈↓ εO␈ε%1␈α↓6␈↓ πI␈ε%24
␈βε→␈↓ α␈ε"W␈α⎇e␈α
could␈α
n␈α↓ot␈α
complete␈α
the␈α
prin␈α␈ting␈α
of␈α
the␈α
|rst␈α
line␈αun␈α␈til␈↓ λ␈␈ε(f␈↓ 	:␈ε"had␈α
been␈α
computed.
␈βε&␈↓ 	⊂␈ε%1␈α↓7
␈βεE␈↓ ↓H␈ε"This␈αsituation␈α
seems␈α
to␈αcall␈α
for␈α
ha␈α␈ving␈α
a␈αlarge␈α
n␈α␈um␈α␈ber␈α
of␈αstorage␈α
v␈α}ariables␈α
to␈αretain
␈βεp␈↓ ↓H␈ε"the␈α
v␈α}alues␈α
of␈α
at␈α
least␈↓ ∧ ␈ε(f␈↓ ∧B␈ε",␈↓ ∧L␈ε(f␈↓ ∧o␈ε",␈↓ ∧y␈ε".␈αε.␈αε.␈↓ ¬)␈ε",␈↓ ¬3␈ε(f␈↓ ¬e␈ε",␈α
un␈α␈til␈α
they␈α
can␈α
be␈α
prin␈α␈ted.␈α∪Just␈α
as␈α
(by␈α
iteration)
␈βε|␈↓ ∧2␈ε%1␈↓ ∧↑␈ε%2␈↓ ¬E␈ε%16
␈βπ≠␈↓ ↓H␈ε"w␈α␈e␈αcan␈α
readily␈αconstruct␈αa␈αlarge␈αfamily␈αof␈αsimilar␈αcommands,␈αw␈α␈e␈αcan␈αalso␈αconstruct␈α
a
␈βπF␈↓ ↓H␈ε"large␈αfamily␈αof␈αsimilar␈αprogram␈αv␈α}ariables,␈αcalled␈αan␈ε/␈αarra␈α␈y␈ε".␈↓ λY␈ε"W␈α⎇e␈αcreate␈αfor␈αthis␈αpurpose
␈βπq␈↓ ↓H␈ε"an␈αarra␈α␈y␈αof␈α24␈αstorage␈αv␈α}ariables,␈αby␈αthe␈ε/␈αarra␈α␈y␈αdeclaration␈ε".
␈βλ-␈↓ αX␈ε5VA␈α␈R␈α∪X␈α∪:␈α∪ARRA␈α␈Y␈α∪[1..24]␈α∩OF␈α∪INTEGER
␈βλd␈↓ ↓H␈ε"which␈α∂creates␈α∂the␈α∂in␈α␈teger␈α∂v␈α}ariables␈α∂called␈↓ λ'␈ε".␈αε.␈αε.␈↓ 	W␈ε"when␈α∂the␈α∂block␈α∂is
␈βλf␈↓ εj␈ε5X[1]␈α␈,X[2],␈↓ λW␈ε5,X[2␈α␈4]
␈β	∂␈↓ ↓H␈ε"en␈α␈tered.␈α⊂W␈α⎇e␈αcan␈αm␈α↓odify␈αour␈αprevious␈αcomputation␈αof␈↓ λ_␈ε(f␈↓ λ:␈ε",␈↓ λD␈ε(f␈↓ λg␈ε",␈↓ λq␈ε".␈αε.␈αε.␈↓ 	!␈ε",␈↓ 	+␈ε(f␈↓ 	i␈ε"so␈αthat␈αwhenev␈α␈er
␈β	≤␈↓ λ*␈ε%1␈↓ λV␈ε%2␈↓ 	=␈ε%24
␈β	:␈↓ ↓H␈ε(f␈↓ ↓r␈ε"is␈αcomputed,␈αits␈αv␈α}alue␈αis␈αgiv␈α␈en␈αto␈↓ ε(␈ε(i␈↓ εH␈ε".␈α⊂Then␈αthe␈αprogram␈αbecomes:
␈β	<␈↓ εβ␈ε5X[␈↓ ε5␈ε5]
␈β	G␈↓ ↓Y␈ε+i
␈β	u␈↓ αP␈ε∃PROGRAM␈↓ βX␈ε∃FIBTABLE;
␈β
≤␈↓ αP␈ε∃VAR␈↓ β∀␈ε∃I,J␈↓ βX␈ε∃:␈↓ βz␈ε∃INTEGER;
␈β
D␈↓ β6␈ε∃X␈↓ βX␈ε∃:␈↓ βz␈ε∃ARRAY␈↓ ∧`␈ε∃[1..24]␈↓ ¬h␈ε∃OF␈↓ ε≠␈ε∃INTEGER;
␈β
l␈↓ αP␈ε∃BEGIN
␈β∪␈↓ αP␈ε∃X[1]␈↓ β%␈ε∃:=␈↓ βX␈ε∃1;␈↓ ∧␈ε∃(*␈↓ ∧>␈ε∃F(1)␈↓ ¬∪␈ε∃=␈↓ ¬5␈ε∃1␈↓ ¬W␈ε∃*)
␈β;␈↓ αP␈ε∃X[2]␈↓ β%␈ε∃:=␈↓ βX␈ε∃1;␈↓ ∧␈ε∃(*␈↓ ∧>␈ε∃F(2)␈↓ ¬∪␈ε∃=␈↓ ¬5␈ε∃1␈↓ ¬W␈ε∃*)
␈β`␈↓ ε
␈ε#.␈αε.␈αε.
␈βb␈↓ β%␈ε∃(*␈↓ βX␈ε∃COMPUTE␈↓ ∧`␈ε∃X[3],X[4],␈↓ ε6␈ε∃,X[24]␈↓ π-␈ε∃*)
␈β
␈↓ αP␈ε∃FOR␈↓ β∀␈ε∃I:=␈↓ βX␈ε∃3␈↓ βz␈ε∃TO␈↓ ∧-␈ε∃24␈↓ ∧`␈ε∃DO
␈β0␈↓ ε
␈ε#.␈αε.␈αε.
␈β2␈↓ ββ␈ε∃(*␈↓ β6␈ε∃ALREADY␈↓ ∧>␈ε∃X[1]␈↓ ¬∪␈ε∃=␈↓ ¬5␈ε∃F(1),␈↓ ε6␈ε∃,X[I-1]␈↓ π>␈ε∃=␈↓ π`␈ε∃F(␈α↓I-1)␈↓ λX␈ε∃*)
␈βW␈↓ λ+␈ε#.␈αε.␈αε.
␈βY␈↓ ββ␈ε∃X[I]␈↓ βX␈ε∃:=␈↓ ∧␈ε∃X[I-1]␈↓ ¬α␈ε∃+␈↓ ¬$␈ε∃X[I-2];␈↓ ε,␈ε∃(*␈↓ ε←␈ε∃X[1]␈↓ π4␈ε∃=␈↓ πV␈ε∃F(1),␈↓ λX␈ε∃,X[I]␈↓ 	>␈ε∃=␈↓ 	`␈ε∃F(I)␈↓ 
5␈ε∃*)
␈β
↓␈↓ αP␈ε∃(*␈↓ ββ␈ε∃PRINT␈↓ βi␈ε∃THE␈↓ ∧-␈ε∃THREE-COLUMN␈↓ ε
␈ε∃TABLE␈↓ εp␈ε∃*)
␈β
(␈↓ αP␈ε∃FOR␈↓ β∀␈ε∃J:=␈↓ βX␈ε∃1␈↓ βz␈ε∃TO␈↓ ∧-␈ε∃8␈↓ ∧O␈ε∃DO
␈β
P␈↓ ββ␈ε∃WRITELN(X[J],X[J+8],X[J+16])
␈β
x␈↓ αP␈ε∃END.
␈β∞1␈↓ α␈ε"Notice␈α
in␈α
the␈α
last␈α
line,␈αfor␈α
example,␈α
that␈↓ λα␈ε"is␈α
n␈α↓ot␈α
a␈α
single␈α
program␈α
v␈α}ariable,
␈β∞3␈↓ ππ␈ε5X[J+8␈α␈]
␈β∞\␈↓ ↓H␈ε"but␈αma␈α␈y␈αbe␈αan␈α␈y␈αof␈αeigh␈α␈t␈αdi{eren␈α␈t␈αstorage␈αv␈α}ariables␈αdepending␈αon␈αthe␈αv␈α}alue␈αof␈↓ #␈ε".
␈β∞↑␈↓ ⊂␈ε5J
␈β∂λ␈↓ α␈ε"The␈α⊂use␈α⊂of␈α⊂arra␈α␈ys␈α∂has␈α⊂t␈α␈w␈α␈o␈α⊂bene|ts.␈α≤One␈α∂is␈α⊂the␈α⊂brevit␈α␈y␈α⊂of␈α⊂the␈α⊂declaration;␈α⊃to
␈β∂3␈↓ ↓H␈ε"create␈αt␈α␈w␈α␈en␈α␈t␈α␈y-four␈αv␈α}ariables␈αotherwise␈αw␈α␈ould␈αha␈α␈v␈α␈e␈αrequired␈αa␈αdeclaration␈αlik␈α␈e
␈β⊃∨

␈β↓H␈↓ ↓$␈∧↓H↓$α
u
␈β↓J␈↓ ↓$␈∧↓J↓$Hα␈↓ α→␈∧↓Jα→Hα␈↓ ↔␈∧↓J↔Hα
␈β↓V␈↓ εf␈ε>Arr␈α␈a␈α␈y␈α↓s
␈β↓\␈↓ ↓M␈ε"82
␈βα⊃␈↓ ↓$␈∧α⊃↓$α
u
␈βαN␈↓ αP␈ε∃VAR␈↓ β%␈ε∃X1,X2,X3,X4,X5,X6,X7,X8,X9,X10,X11,X12,X13,
␈βαu␈↓ β∀␈ε∃X14,X15,X16,X17,X18,X19,X20,X21,X22,X23,X24␈↓ 	␈ε∃:␈↓ 	"␈ε∃INTEGER;
␈ββ0␈↓ α␈ε"The␈α∂other␈α∂adv␈α}an␈α␈tage␈α⊂is␈α∂that␈α∂the␈α∂v␈α}ariables␈α∂created␈α⊂by␈α∂an␈α∂arra␈α␈y␈α∂declaration␈α∂are
␈ββ[␈↓ ↓H␈ε"related.␈α∂W␈α⎇e␈α	ma␈α␈y␈α	write␈↓ ∧P␈ε6E␈↓ ∧|␈ε",␈α
where␈↓ ¬u␈ε6E␈↓ ε↔␈ε"is␈α	an␈α	expression␈α	which␈α	tak␈α␈es␈αλon␈α	di{eren␈α␈t␈α	in␈α␈teger
␈ββ]␈↓ ∧+␈ε5X␈α␈[␈↓ ∧i␈ε5]
␈β∧ε␈↓ ↓H␈ε"v␈α}alues␈αbet␈α␈w␈α␈een␈α
one␈α
and␈α
t␈α␈w␈α␈en␈α␈t␈α␈y-four␈α
at␈αdi{eren␈α␈t␈α
times,␈α
to␈α
refer␈α
to␈α
di{eren␈α␈t␈αv␈α}ariables
␈β∧2␈↓ ↓H␈ε"of␈α
the␈αsame␈αarra␈α␈y␈αat␈αdi{eren␈α␈t␈α
times.␈α⊂A␈αsingle␈αcommand␈α
is␈αthereby␈αable␈αto␈αchange␈α
the
␈β∧]␈↓ ↓H␈ε"v␈α}alue␈αof␈αan␈α␈y␈αone␈αof␈αthe␈αv␈α}ariables␈αin␈αthe␈αarra␈α␈y␈αas␈↓ 
{␈ε"does,␈αor
␈β∧←␈↓ π=␈ε5X[I]␈α∩:=␈α∪X[I-1]␈α∩+␈α∪X[I-2]
␈β¬λ␈↓ ↓H␈ε"to␈αuse␈αthe␈αv␈α}alue␈αof␈αan␈α␈y␈αof␈αthe␈αv␈α}ariables,␈αas␈αthe␈αprin␈α␈ting␈αcommand␈αabo␈α␈v␈α␈e␈αdoes.
␈β¬3␈↓ α␈ε"In␈α∂an␈α∂expression␈α∂lik␈α␈e␈↓ ¬g␈ε"where␈↓ εs␈ε"is␈α∂an␈α∂arra␈α␈y␈α∂name,␈α∂the␈α∂expression␈↓ V␈ε"in
␈β¬5␈↓ ∧f␈ε5X[I+J]␈↓ εQ␈ε5X␈↓ ∂␈ε5I+J
␈β¬↑␈↓ ↓H␈ε"square␈αbrack␈α␈ets␈αis␈αcalled␈αthe␈ε/␈αsubscript␈ε".␈↓ ε6␈ε"It␈αis␈αev␈α}aluated␈αto␈α|nd␈αwhich␈αv␈α}ariable
␈β¬`␈↓ β␈ε5X[I+J]
␈βε
␈↓ ↓H␈ε"designates;␈α∪if␈↓ βO␈ε"=␈α⊃3␈α⊃and␈↓ ¬∃␈ε"=␈α⊃8,␈↓ εz␈ε"designates␈α⊂the␈α⊃v␈α}ariable␈↓ 
W␈ε".␈α≡Strictly
␈βε␈↓ β+␈ε5I␈↓ ∧q␈ε5J␈↓ ¬w␈ε5X[I+J]␈↓ 	y␈ε5X[1␈α␈1]
␈βε5␈↓ ↓H␈ε"speaking,␈↓ β←␈ε"is␈α	n␈α↓ot␈α
a␈α
v␈α}ariable,␈α
but␈α	an␈α
expression␈α
designating␈α	a␈α
v␈α}ariable;␈α
h␈α↓o␈α␈w␈α␈ev␈α␈er,
␈βε7␈↓ αd␈ε5X[I␈α␈+J]
␈βε`␈↓ ↓H␈ε"a␈αlo␈α↓ose␈αusage␈αis␈αcustomary␈αin␈αwhich␈αsuch␈αan␈αexpression␈αis␈αcalled␈αa␈αv␈α}ariable.
␈βπ␈↓ α␈ε"Arra␈α␈ys␈α
ma␈α␈y␈αalso␈α
be␈αcreated␈α
in␈αwhich␈α
the␈α
v␈α}ariables␈αha␈α␈v␈α␈e␈α
t␈α␈w␈α␈o␈αor␈α
m␈α↓ore␈αsubscripts.
␈βπ6␈↓ ↓H␈ε"Suppose␈α
w␈α␈e␈α
w␈α␈an␈α␈ted␈α
to␈αwrite␈α
a␈α
computer␈α
program␈αto␈α
k␈α␈eep␈α
a␈α
record␈αof␈α
the␈α
frequency␈α
of
␈βπb␈↓ ↓H␈ε"occurrences␈α
of␈αdigrams␈α(t␈α␈w␈α␈o-letter␈α
pairs)␈αin␈αEnglish␈α
text.␈α⊂(In␈αthe␈α
|rst␈αsen␈α␈tence␈αof␈α
this
␈βλ
␈↓ ↓H␈ε"paragraph,␈α∞the␈α∞digram␈α∞\AR"␈α∞occurs␈α∞t␈α␈wice;␈α∂\ZQ"␈α∞does␈α∞n␈α↓ot␈α∞occur␈α∞at␈α∞all.)␈α∃W␈α⎇e␈α∞w␈α␈ould
␈βλ8␈↓ ↓H␈ε"probably␈αcreate␈αan␈αarra␈α␈y␈↓ ∧x␈ε"by␈αa␈αdeclaration␈αlik␈α␈e
␈βλ:␈↓ ∧Y␈ε5F
␈βλ}␈↓ αX␈ε5VA␈α␈R␈α∪F␈α∪:␈α∪ARRA␈α␈Y␈α∪[1..26,1␈α␈..26]␈α∪of␈α∪I␈α␈NTEGER;
␈β	@␈↓ ↓H␈ε"in␈α⊃which␈α∩the␈α∩v␈α}ariable␈↓ ¬K␈ε"w␈α␈ould␈α∩be␈α⊃used␈α∩to␈α∩h␈α↓old␈α⊃a␈α∩coun␈α␈t␈α∩of␈α⊃the␈α∩n␈α␈um␈α␈ber␈α⊃of
␈β	B␈↓ ∧5␈ε5F[1,18]
␈β	k␈↓ ↓H␈ε"digrams␈α∂\AR",␈α⊂since␈α∂\A"␈α∂is␈α∂the␈α∂|rst␈α∂and␈α⊂\R"␈α∂the␈α∂eigh␈α␈teen␈α␈th␈α∂letter␈α∂of␈α∂the␈α∂English
␈β
↔␈↓ ↓H␈ε"alphabet.␈α∂Upon␈α
|nding␈α
in␈α
a␈α
text␈αa␈α
digram␈α
consisting␈α
of␈α
the␈α
i-th␈α
letter␈α
of␈α
the␈α
alphabet
␈β
B␈↓ ↓H␈ε"follo␈α␈w␈α␈ed␈α
by␈α
the␈αj-th,␈αthe␈α
program␈αw␈α␈ould␈α
execute␈α
the␈αcommand
␈β
D␈↓ 	 ␈ε5F[I,J]␈α∪:␈α␈=␈α∪F[I,J]+1
␈β
m␈↓ ↓H␈ε"to␈αincrease␈αthe␈αcoun␈α␈t␈αfor␈αthat␈αdigram.
␈β_␈↓ α␈ε"The␈αgeneral␈αform␈αof␈αan␈αarra␈α␈y␈αdeclaration␈αis
␈β\␈↓ β#␈ε6I␈↓ βY␈ε6I␈↓ β|␈ε",␈↓ ∧→␈ε".␈αε.␈αε.␈↓ ∧\␈ε6I␈↓ ε?␈ε6K␈↓ π∨␈ε6K␈↓ πk␈ε6K␈↓ λK␈ε6K␈↓ 	_␈ε".␈αε.␈αε.␈↓ 	[␈ε6K␈↓ 
F␈ε6K␈↓ j␈ε6T
␈β↑␈↓ αX␈ε5VA␈α␈R␈↓ βF␈ε5,␈↓ ∧I␈ε5,␈↓ ¬∃␈ε5:␈α∩ARRAY␈α∪[␈↓ εy␈ε5..␈↓ πY␈ε5,␈↓ λ%␈ε5..␈↓ 	¬␈ε5,␈↓ 	H␈ε5,␈↓ 
 ␈ε5..␈↓ ␈ε5]␈α∩OF␈↓ 	␈ε5;
␈βi␈↓ β5␈ε%1␈↓ βk␈ε%2␈↓ ∧n␈ε+n␈↓ εY␈ε%11␈↓ π9␈ε%12␈↓ λ¬␈ε%2␈α↓1␈↓ λe␈ε%22␈↓ 	u␈ε+m␈ε%1␈↓ 
`␈ε+m␈ε%2
␈β!␈↓ ↓H␈ε"where␈ε(␈α
n␈ε6␈α∃␈ε"␈α1,␈ε(␈α
m␈ε6␈α∃␈ε"␈α1,␈↓ ∧2␈ε6T␈↓ ∧↑␈ε"is␈α
an␈α␈y␈α∞t␈α␈ype,␈α
and␈α
the␈ε/␈α∞arra␈α␈y␈α
bounds␈↓ 	π␈ε6K␈↓ 	A␈ε",␈↓ 	Y␈ε6K␈↓ 
∪␈ε",␈↓ 
*␈ε".␈αε.␈αε.␈↓ 
Z␈ε",␈↓ 
r␈ε6K␈↓ D␈ε"are
␈β-␈↓ 	!␈ε%11␈↓ 	s␈ε%12␈↓ ␈ε+m␈ε%␈α␈2
␈βL␈↓ ↓H␈ε"in␈α␈teger␈αconstan␈α␈ts.␈α⊂The␈αarra␈α␈y␈αdeclaration␈αcreates␈αthe␈αv␈α}ariables
␈β
⊂␈↓ αX␈ε6I␈↓ β␈ε(y␈↓ βA␈ε(y␈↓ βv␈ε".␈αε.␈αε.␈↓ ∧9␈ε(y
␈β
∩␈↓ αy␈ε5[␈↓ β.␈ε5,␈↓ βc␈ε5,␈↓ ∧&␈ε5,␈↓ ∧g␈ε5]
␈β
≤␈↓ αj␈ε+j␈↓ β≥␈ε%1␈↓ βR␈ε%2␈↓ ∧K␈ε+m
␈β
T␈↓ ↓H␈ε"for␈α
each␈↓ αU␈ε(j␈↓ αo␈ε"(1␈ε6␈α
∀␈↓ βK␈ε(j␈↓ βi␈ε6∀␈ε(␈α
n␈ε")␈α
and␈α∞for␈α∞each␈α∞com␈α␈bination␈α
of␈α∞in␈α␈tegers␈↓ 	 ␈ε(y␈↓ 	B␈ε",␈↓ 	Z␈ε(y␈↓ 	⎇␈ε",␈↓ 
∃␈ε".␈αε.␈αε.␈↓ 
E␈ε",␈↓ 
]␈ε(y␈↓ _␈ε"which
␈β
`␈↓ 	1␈ε%1␈↓ 	l␈ε%2␈↓ 
n␈ε+m
␈β
␈␈↓ ↓H␈ε"lie␈α
in␈α∞the␈α
respectiv␈α␈e␈α
ranges␈α∞(␈↓ ¬	␈ε6K␈↓ ¬C␈ε",␈↓ ¬S␈ε6K␈↓ ε
␈ε"),␈αε(␈↓ ε5␈ε6K␈↓ εo␈ε",␈↓ ε␈␈ε6K␈↓ π9␈ε"),␈↓ πU␈ε".␈αε.␈αε.␈↓ λ¬␈ε",␈αε(␈↓ λ!␈ε6K␈↓ λf␈ε",␈↓ λv␈ε6K␈↓ 	<␈ε");␈α∞that␈α
is,␈α∞for␈α
which
␈β∞␈↓ ¬#␈ε%11␈↓ ¬m␈ε%12␈↓ εO␈ε%21␈↓ π→␈ε%22␈↓ λ;␈ε+m␈ε%␈α␈1␈↓ 	⊂␈ε+m␈ε%2
␈β∞*␈↓ ↓H␈ε6K␈↓ απ␈ε6∀␈↓ α5␈ε(y␈↓ α]␈ε6∀␈↓ β␈ε6K␈↓ βH␈ε"(1␈ε6␈α
∀␈ε(␈α
i␈ε6␈α∀␈ε(␈α
m␈ε").␈α⊂F␈α⎇or␈αexample,
␈β∞7␈↓ ↓b␈ε+i␈ε%␈α␈1␈↓ αG␈ε+i␈↓ β%␈ε+i␈ε%␈α␈2
␈β∞q␈↓ αX␈ε5VA␈α␈R␈α∪X,Y:␈α∪ARR␈α␈AY[1..2,-2␈α␈..0]␈α∪OF␈α∪RE␈α␈AL;
␈β∂3␈↓ ↓H␈ε"creates␈αthe␈αarra␈α␈y␈αof␈αstorage␈αv␈α}ariables
␈β⊃∨

␈β↓H␈↓ ↓$␈∧↓H↓$α
u
␈β↓J␈↓ ↓$␈∧↓J↓$Hα␈↓ "␈∧↓J"Hα␈↓ ↔␈∧↓J↔Hα
␈β↓V␈↓ ¬k␈ε>Arr␈α␈a␈α␈y␈α↓s
␈β↓\␈↓ K␈ε"83
␈βα⊃␈↓ ↓$␈∧α⊃↓$α
u
␈βαP␈↓ αP␈ε∃X[1,-2]␈↓ ∧`␈ε∃X[1,-1]␈↓ εp␈ε∃X[1,0]
␈βαx␈↓ αP␈ε∃X[2,-2]␈↓ ∧`␈ε∃X[2,-1]␈↓ εp␈ε∃X[2,0]
␈ββG␈↓ αP␈ε∃Y[1,-2]␈↓ ∧`␈ε∃X[1,-1]␈↓ εp␈ε∃X[1,0]
␈ββo␈↓ αP␈ε∃Y[2,-2]␈↓ ∧`␈ε∃Y[2,-1]␈↓ εp␈ε∃Y[2,0]
␈β∧+␈↓ ↓H␈ε"where␈αthe␈α|rst␈αsubscript␈αlies␈αbet␈α␈w␈α␈een␈α1␈αand␈α2,␈αand␈αthe␈αsecond␈αbet␈α␈w␈α␈een␈α-2␈αand␈α0.
␈β∧l␈↓ ↓H␈ε2Example
␈β¬↔␈↓ α␈ε"T␈α⎇o␈αread␈α100␈αn␈α␈um␈α␈bers␈αand␈αprin␈α␈t␈αthem␈αin␈αrev␈α␈erse␈αorder:
␈β¬U␈↓ αP␈ε∃VAR␈↓ β∀␈ε∃X␈↓ β6␈ε∃:␈↓ βX␈ε∃ARRAY␈↓ ∧>␈ε∃[1..100]␈↓ ¬W␈ε∃OF␈↓ ε
␈ε∃REAL;
␈β¬⎇␈↓ αP␈ε∃BEGIN
␈βε$␈↓ αP␈ε∃FOR␈↓ β∀␈ε∃J:=␈↓ βX␈ε∃1␈↓ βz␈ε∃TO␈↓ ∧-␈ε∃100␈↓ ∧q␈ε∃DO␈↓ ¬$␈ε∃READ(X[J]);
␈βεL␈↓ αP␈ε∃FOR␈↓ β∀␈ε∃I:=␈↓ βX␈ε∃100␈↓ ∧≤␈ε∃DOWNTO␈↓ ¬∪␈ε∃1␈↓ ¬5␈ε∃DO␈↓ ¬h␈ε∃WRITELN(X[I])
␈βεs␈↓ αP␈ε∃END.
␈βπF␈↓ ↓H␈ε2Exercise
␈βπv␈↓ α␈ε$Desi␈α␈gn␈αa␈α
prog␈α↓ram␈αt␈α␈o␈αre␈α␈a␈α↓d␈α
10␈α↓0␈α
n␈α␈umbe␈α␈rs␈α
a␈α↓nd␈α
pri␈α␈nt␈α
the␈α␈m␈αi␈α␈n␈αfour␈α
v␈α␈erti␈α␈cal␈α
col␈α␈um␈α↓ns.
␈βλ2␈↓ ↓H␈ε2Exercise
␈βλb␈↓ α␈ε$Desi␈α␈gn␈αλa␈αλprog␈α↓ram␈αλto␈αλread␈αλ100␈αλnum␈α␈bers,␈απa␈α↓nd␈απprin␈α␈t␈αλthe␈απmean␈αλ(av␈α␈erage),␈αλand␈αλthe␈απa␈α␈ve␈α␈ra␈α↓ge␈απdevi␈α␈a␈α↓ti␈α␈on
␈β	
␈↓ ↓H␈ε$from␈α
the␈α
mean,␈α
o␈α↓f␈α
the␈αn␈α␈umbe␈α␈rs.␈α∃(␈α↓The␈αdevi␈α␈a␈α↓ti␈α␈on␈α
o␈α↓f␈α
a␈α
n␈α␈umbe␈α␈r␈↓ λ≤␈ε*X␈↓ λE␈ε$fro␈α↓m␈α
the␈αm␈α↓e␈α␈a␈α↓n␈↓ 
≥␈ε*M␈↓ 
L␈ε$i␈α␈s␈α
de|ne␈α␈d␈α
a␈α↓s
␈β	8␈↓ ↓H␈ε*A␈↓ ↓↑␈ε*B␈↓ ↓u␈ε*S␈↓ α
␈ε$(␈↓ α∀␈ε*X␈↓ α3␈ε8␈␈↓ αT␈ε*M␈↓ αv␈ε$)␈α↓,␈αλt␈α␈he␈αλabsolute␈απv␈α␈alue␈απo␈α↓f␈αλthe␈απdi{e␈α␈renc␈α␈e␈αλbet␈α␈w␈α␈e␈α␈en␈αλthe␈απnum␈α␈ber␈αλand␈αλthe␈απm␈α↓ean;␈αλif␈αλthe␈απn␈α␈umbers
␈β	d␈↓ ↓H␈ε$w␈α␈e␈α␈re␈α	2,␈α	5,␈αλa␈α↓nd␈αλ7␈α↓,␈αλthe␈αλm␈α↓e␈α␈a␈α↓n␈αλwould␈αλbe␈α	14/3␈α↓,␈αλa␈α↓nd␈αλthe␈αλav␈α␈erage␈α	de␈α␈viation␈α	from␈α	the␈αλm␈α↓ean␈α	w␈α␈ould␈αλbe␈α	16/␈α↓9.
␈β⊃_

␈β↓H␈↓ ↓$␈∧↓H↓$α
u
␈β↓J␈↓ ↓$␈∧↓J↓$Hα␈↓ α→␈∧↓Jα→Hα␈↓ ↔␈∧↓J↔Hα
␈β↓V␈↓ ¬&␈ε>D␈α␈e␈α↓s␈α␈k␈α∞C␈α↓h␈α␈e␈α↓ck␈α␈ing␈α∞o␈α␈f␈α∂Prog␈α␈rams
␈β↓\␈↓ ↓M␈ε"84
␈βα⊃␈↓ ↓$␈∧α⊃↓$α
u
␈βαT␈↓ ↓H␈ε>D␈α␈e␈α↓s␈α␈k␈α∞C␈α↓h␈α␈e␈α↓ck␈α␈ing␈α∞o␈α␈f␈α∂Prog␈α␈rams.
␈ββ↔␈↓ α␈ε"It␈α∩is␈α⊃a␈α∩mistak␈α␈e␈α∩to␈α⊃expect␈α∩the␈α∩computer␈α⊃to␈α∩|nd␈α∩the␈α⊃errors␈α∩in␈α∩y␈α␈our␈α⊃programs.
␈ββC␈↓ ↓H␈ε"Man␈α␈y␈α⊃errors␈α⊃are␈α∩found␈α⊃m␈α␈uch␈α⊃m␈α↓ore␈α∩easily␈α⊃by␈α⊃checking␈α⊃meth␈α↓ods␈α∩which␈α⊃depend␈α⊃on
␈ββn␈↓ ↓H␈ε"understanding␈α	what␈α	the␈α	program␈α	is␈α
doing,␈α	before␈α
the␈α	computer␈α	ev␈α␈er␈α	sees␈α	the␈α	program.
␈β∧→␈↓ α␈ε"The␈α|rst␈αstep␈αis␈αto␈αget␈αa␈αgrammatically␈αcorrect␈αprogram.
␈β∧E␈↓ ↓Z␈ε6∂␈↓ ↓}␈ε"Use␈αa␈α
ligh␈α␈t␈α
colored␈αpencil␈α
or␈α
marking␈αpen␈α
to␈α
circle␈αeach␈α
commen␈α␈t,␈α
checking␈αthat
␈β∧p␈↓ α4␈ε"there␈α	is␈αλn␈α↓o␈α	other␈↓ ∧g␈ε"or␈↓ ¬?␈ε"in␈αλthe␈α	commen␈α␈t.␈α∂F␈α⎇rom␈α	here␈α	on,␈α
ign␈α↓ore␈α	the␈αλcommen␈α␈ts,
␈β∧r␈↓ ∧8␈ε5(*␈↓ ¬⊂␈ε5*)
␈β¬≠␈↓ α4␈ε"as␈αthey␈αare␈αign␈α↓ored␈αby␈αthe␈αtranslator.
␈β¬F␈↓ ↓Z␈ε6∂␈↓ ↓}␈ε"Find␈αthe␈α|rst␈↓ ∧∨␈ε"in␈αthe␈αprogram,␈αand␈αdra␈α␈w␈αa␈αline␈αin␈αthe␈αle$␈αmargin␈αback␈αto␈αthe
␈β¬H␈↓ β[␈ε5END
␈β¬r␈↓ α4␈ε"previous␈↓ ∧E␈ε"Keep␈α∂doing␈α∞this,␈α∂ign␈α↓oring␈↓ λk␈ε"which␈α∞ha␈α␈v␈α␈e␈α∂already␈α∞been
␈β¬t␈↓ βE␈ε5BEGIN.␈↓ πk␈ε5BEGI␈α␈Ns
␈βε≥␈↓ α4␈ε"used.␈α∂This␈α
matches␈α
the␈↓ ε%␈ε"and␈↓ πR␈ε"sh␈α↓o␈α␈wing␈α
the␈α
scope␈α
of␈α
iterations␈α
and
␈βε∨␈↓ ¬)␈ε5BEGINs␈↓ εi␈ε5ENDs,
␈βεH␈↓ α4␈ε"conditional␈αclauses.␈α⊂It␈αalso␈αsh␈α↓o␈α␈ws␈αh␈α↓o␈α␈w␈αman␈α␈y␈αtimes␈αto␈αinden␈α␈t␈αeach␈αline.
␈βπ
␈↓ ↓H␈ε2Example
␈βπG␈↓ αX␈ε5(b␈α␈efore␈α∪inde␈α␈ntation)␈↓ ε~␈ε5(a␈α␈fter␈α∪inden␈α␈tation)
␈βπn␈↓ αX␈ε5FO␈α␈R␈α∪---␈α∪DO␈↓ ε~␈ε5FO␈α␈R␈α∪---␈α∪DO
␈βλ⊗␈↓ αX␈ε5BE␈α␈GIN␈↓ ε?␈ε5BEGIN
␈βλ=␈↓ αX␈ε5X:␈α␈=...␈↓ ε?␈ε5X:=
␈βλe␈↓ αX␈ε5IF␈α∩...␈α&THEN␈↓ ε?␈ε5IF␈α∪...␈α&TH␈α␈EN
␈β	
␈↓ αX␈ε5BE␈α␈GIN␈↓ εe␈ε5BEGIN
␈β	4␈↓ αX␈ε5X:␈α␈=...␈↓ εe␈ε5X:=...
␈β	\␈↓ αX␈ε5WR␈α␈ITE...␈↓ εe␈ε5WRITE...
␈β
β␈↓ αX␈ε5EN␈α␈D␈↓ εe␈ε5END
␈β
+␈↓ αX␈ε5EL␈α␈SE␈↓ ε?␈ε5ELSE
␈β
S␈↓ αX␈ε5BE␈α␈GIN␈↓ εe␈ε5BEGIN
␈β
z␈↓ αX␈ε5Y:␈α␈=...␈↓ εe␈ε5Y:=...
␈β"␈↓ αX␈ε5Z:␈α␈=...␈↓ εe␈ε5Z:=...
␈βI␈↓ αX␈ε5EN␈α␈D␈↓ εe␈ε5END;
␈βq␈↓ αX␈ε5WR␈α␈ITE...␈↓ ε?␈ε5WRITE...
␈β→␈↓ αX␈ε5EN␈α␈D;␈↓ ε?␈ε5END;
␈βY␈↓ ↓Z␈ε6∂␈↓ ↓}␈ε"Circle␈αthe␈αprimitiv␈α␈e␈αcommands,␈αusing␈αa␈αdi{eren␈α␈t␈αligh␈α␈t␈αcolor.␈α⊂These␈αw␈α␈ould␈αinclude
␈β
∧␈↓ α4␈ε"the␈αassignmen␈α␈t␈αand␈αprin␈α␈t␈αcommands.␈α⊂Also␈αcircle␈αdeclarations.
␈β
/␈↓ ↓Z␈ε6∂␈↓ ↓}␈ε"No␈α␈w␈α
circle␈α∞the␈α∞larger␈α∞commands␈α∞all␈α
of␈α∞wh␈α↓ose␈α∞componen␈α␈t␈α∞commands␈α∞are␈α
circled,
␈β
[␈↓ α4␈ε"checking␈αthat␈αeach␈αhas␈αone␈αof␈αthe␈αforms
␈β∞⊗␈↓ β6␈ε7C␈↓ βk␈ε7C␈↓ ∧c␈ε7C
␈β∞_␈↓ αP␈ε∃BEGIN␈↓ βZ␈ε∃;␈↓ ∧∞␈ε∃;...;␈↓ ¬⊗␈ε∃END
␈β∞"␈↓ βJ␈ε&1␈↓ β␈␈ε&2␈↓ ∧x␈ε,b
␈β∞>␈↓ ∧≤␈ε7C
␈β∞@␈↓ αP␈ε∃IF␈↓ ββ␈ε∃...␈↓ βG␈ε∃THEN
␈β∞J␈↓ ∧0␈ε&1
␈β∞f␈↓ ∧≤␈ε7C␈↓ ¬&␈ε7C
␈β∞h␈↓ αP␈ε∃IF␈↓ ββ␈ε∃...␈↓ βG␈ε∃THEN␈↓ ∧Q␈ε∃ELSE
␈β∞q␈↓ ∧0␈ε&1␈↓ ¬:␈ε&2
␈β∂
␈↓ ∧␈ε7C
␈β∂∂␈↓ αP␈ε∃FOR␈↓ β∀␈ε∃...␈↓ βX␈ε∃DO
␈β∂→␈↓ ∧∨␈ε&1
␈β∂5␈↓ ∧-␈ε7C
␈β∂7␈↓ αP␈ε∃WHILE␈↓ β6␈ε∃...␈↓ βz␈ε∃DO
␈β∂@␈↓ ∧A␈ε&1
␈β⊃_

␈β↓H␈↓ ↓$␈∧↓H↓$α
u
␈β↓J␈↓ ↓$␈∧↓J↓$Hα␈↓ "␈∧↓J"Hα␈↓ ↔␈∧↓J↔Hα
␈β↓V␈↓ ∧+␈ε>D␈α␈e␈α↓s␈α␈k␈α∞C␈α↓h␈α␈e␈α↓ck␈α␈ing␈α∞o␈α␈f␈α∂Prog␈α␈rams
␈β↓\␈↓ K␈ε"85
␈βα⊃␈↓ ↓$␈∧α⊃↓$α
u
␈βαO␈↓ ↓H␈ε"where␈↓ α1␈ε6C␈↓ αX␈ε",␈↓ αo␈ε6C␈↓ β⊗␈ε",␈↓ β-␈ε".␈αε.␈αε.␈↓ βj␈ε"ha␈α␈v␈α␈e␈α
already␈α
been␈α
circled.␈α∪W␈α⎇atch␈α
for␈α
missing␈α
or␈α
extra␈α
semicolons
␈βα[␈↓ αG␈ε%1␈↓ β¬␈ε%2
␈βαz␈↓ ↓H␈ε"at␈αthis␈α
stage,␈αand␈α
check␈αwhen␈α
y␈α␈ou␈αcircle␈α
a␈αcompound␈α
statemen␈α␈t␈αthat␈α
the␈↓ :␈ε"and
␈βα|␈↓ 
O␈ε5BEGIN
␈ββ%␈↓ α␈ε"match,␈αaccording␈αto␈αthe␈αline␈αin␈αthe␈αmargin.
␈ββ'␈↓ ↓H␈ε5EN␈α␈D
␈β⊃_

␈β↓H␈↓ ↓$␈∧↓H↓$α
u
␈β↓J␈↓ ↓$␈∧↓J↓$Hα␈↓ α→␈∧↓Jα→Hα␈↓ ↔␈∧↓J↔Hα
␈β↓V␈↓ ¬&␈ε>D␈α␈e␈α↓s␈α␈k␈α∞C␈α↓h␈α␈e␈α↓ck␈α␈ing␈α∞o␈α␈f␈α∂Prog␈α␈rams
␈β↓\␈↓ ↓M␈ε"86
␈βα⊃␈↓ ↓$␈∧α⊃↓$α
u
␈βαO␈↓ ↓H␈ε2Example
␈ββ7␈↓ αP␈ε∃VAR␈↓ β∀␈ε∃X,U␈↓ βX␈ε∃:␈↓ βz␈ε∃REAL;
␈β∧.␈↓ αP␈ε∃BEGIN
␈β¬$␈↓ αP␈ε∃IF␈↓ ββ␈ε∃---␈↓ βG␈ε∃THEN
␈β¬t␈↓ ββ␈ε∃WHILE␈↓ βi␈ε∃---␈↓ ∧-␈ε∃DO
␈βεC␈↓ β6␈ε∃BEGIN
␈βπ∩␈↓ β6␈ε∃X:=Y␈↓ ∧O␈ε∃;
␈βπa␈↓ β6␈ε∃U:=V
␈βλ0␈↓ β6␈ε∃END
␈β	␈↓ αP␈ε∃ELSE
␈β	O␈↓ ββ␈ε∃FOR␈↓ βG␈ε∃---␈↓ ∧␈ε∃DO
␈β
≡␈↓ β6␈ε∃FOR␈↓ βz␈ε∃---␈↓ ∧>␈ε∃DO
␈β
m␈↓ βi␈ε∃IF␈↓ ∧≤␈ε∃---␈↓ ∧`␈ε∃THEN
␈β<␈↓ ∧≤␈ε∃WRITE(---)
␈β␈↓ βi␈ε∃ELSE
␈β[␈↓ ∧≤␈ε∃PRINT(---)␈↓ εp␈ε∃;
␈β
R␈↓ αP␈ε∃P:=Q␈↓ βG␈ε∃;
␈β∞!␈↓ αP␈ε∃PRINT(---)
␈β∞p␈↓ αP␈ε∃END.
␈β∂3␈↓ ↓Z␈ε6∂␈↓ ↓}␈ε"Check␈αthat␈αall␈αv␈α}ariables␈αused␈αare␈αdeclared␈αcorrectly.
␈β⊃∨

␈β↓H␈↓ ↓$␈∧↓H↓$α
u
␈β↓J␈↓ ↓$␈∧↓J↓$Hα␈↓ "␈∧↓J"Hα␈↓ ↔␈∧↓J↔Hα
␈β↓V␈↓ ∧+␈ε>D␈α␈e␈α↓s␈α␈k␈α∞C␈α↓h␈α␈e␈α↓ck␈α␈ing␈α∞o␈α␈f␈α∂Prog␈α␈rams
␈β↓\␈↓ K␈ε"87
␈βα⊃␈↓ ↓$␈∧α⊃↓$α
u
␈βαO␈↓ ↓Z␈ε6∂␈↓ ↓}␈ε"If␈α
a␈α
v␈α}ariable␈α
is␈α
used␈α
to␈α
h␈α↓old␈α
a␈α
v␈α}alue␈α
at␈α
the␈α
end␈α
of␈α	an␈α
iteration␈α
which␈α
will␈α
be␈α
needed
␈βαz␈↓ α4␈ε"when␈αthe␈αiteration␈αis␈αstarted␈αthe␈αnext␈αtime␈α(for␈αexample,␈αthe␈αsum␈αof␈αa␈αseries),
␈ββ%␈↓ α4␈ε"check␈αthat␈αthe␈αv␈α}ariable␈αis␈αalw␈α␈a␈α␈ys␈αinitialized␈αbefore␈αen␈α␈tering␈αthe␈αiteration.
␈ββc␈↓ α6␈∧βcα6αλQ
␈ββe␈↓ α6␈∧βeα6↓⊂α␈↓ ¬␈∧βe¬↓⊂α
␈ββk␈↓ ∧8␈ε2Rule␈αof␈αGo␈α↓od␈αProgramming␈αPractice:
␈β∧↔␈↓ αB␈ε/A$er␈αt␈α␈yping␈αin␈αy␈α␈our␈αprogram␈αoriginally,␈αcreate␈αa␈αpaper␈αlisting␈α(\hard
␈β∧C␈↓ αB␈ε/copy")␈αof␈αit␈αand␈αdesk␈αcheck␈αit␈αbefore␈αtrying␈αto␈αrun␈αit.
␈β∧t␈↓ α6␈∧∧tα6αλQ
␈β⊃_

␈β↓H␈↓ ↓$␈∧↓H↓$α
u
␈β↓J␈↓ ↓$␈∧↓J↓$Hα␈↓ α→␈∧↓Jα→Hα␈↓ ↔␈∧↓J↔Hα
␈β↓V␈↓ ∧(␈ε>D␈α␈iagno␈α␈sin␈α␈g␈α∞I␈α↓n␈α␈corr␈α␈ec␈α↓t␈α∞R␈α␈e␈α↓s␈α␈ult␈α␈s␈α∂o␈α␈f␈α∂Prog␈α␈rams
␈β↓\␈↓ ↓M␈ε"88
␈βα⊃␈↓ ↓$␈∧α⊃↓$α
u
␈βα\␈↓ ↓H␈ε>D␈α␈iagno␈α␈sin␈α␈g␈α∞I␈α↓n␈α␈corr␈α␈ec␈α↓t␈α∞R␈α␈e␈α↓s␈α␈ult␈α␈s␈α∂o␈α␈f␈α∂Prog␈α␈rams.
␈ββ∨␈↓ ↓Z␈ε6∂␈↓ ↓}␈ε"If␈α	the␈α	program␈α	has␈α	surviv␈α␈ed␈α	translation,␈α
but␈α	giv␈α␈es␈α	unexpected␈α
results,␈α	observ␈α␈e␈α	h␈α↓o␈α␈w
␈ββJ␈↓ α4␈ε"far␈α
the␈α
program␈α
ga␈α␈v␈α␈e␈α
correct␈α
results.␈α⊂The␈α
error␈α
will␈α
ordinarily␈α
lie␈α
bet␈α␈w␈α␈een␈α
that
␈ββv␈↓ α4␈ε"part␈α
of␈α
the␈α
program␈α
and␈α
the␈α
part␈α
that␈αfailed␈α
to␈α
do␈α
or␈α
prin␈α␈t␈α
what␈α
y␈α␈ou␈α
expected.
␈β∧!␈↓ α4␈ε"The␈αearliest␈αsymptom␈αis␈αusually␈αthe␈αeasiest␈αto␈αdiagn␈α↓ose,␈αbecause␈αthe␈αe{ects␈αof
␈β∧L␈↓ α4␈ε"the␈α|rst␈αerror␈αo$en␈αcomplicate␈αthe␈αlater␈αones.
␈β∧x␈↓ ↓Z␈ε6∂␈↓ ↓}␈ε"If␈αλy␈α␈ou␈αλcan't␈αλsee␈αλwhat␈α	w␈α␈en␈α␈t␈αλwrong,␈α	get␈αλa␈αλm␈α↓ore␈αλcomplete␈α	picture␈αλof␈αλwhat␈αλthe␈αλprogram
␈β¬#␈↓ α4␈ε"is␈αdoing.␈α⊂A␈α␈t␈αthe␈αbottom␈αof␈αeach␈αiteration,␈αput
␈β¬⎇␈↓ βD␈ε5IF␈α∩DEBUG=1␈α∪T␈α␈HEN␈α∪WRITEL␈α␈N('some␈α∪me␈α␈ssage',IV,␈α␈X,Y,Z)
␈βεS␈↓ α4␈ε"where␈α∪\some␈α∪message"␈α∪iden␈α␈ti|es␈α∪the␈α∪curren␈α␈t␈α∪iteration,␈↓ 	}␈ε"is␈α∪the␈α∪iteration
␈βεU␈↓ 	E␈ε5IV
␈βε}␈↓ α4␈ε"v␈α}ariable␈α	of␈αλthe␈α	iteration,␈α
and␈↓ εA␈ε",␈α	and␈↓ π3␈ε"represen␈α␈t␈α	an␈α␈y␈α	other␈α	relev␈α}an␈α␈t␈αλv␈α}ariables
␈βπ␈↓ ¬v␈ε5X,␈α∩Y␈↓ π↔␈ε5Z
␈βπ*␈↓ α4␈ε"in␈α∞the␈α∂curren␈α␈t␈α∞iteration.␈α_Start␈α∞the␈α∂program␈α∞with␈↓ 	x␈ε".␈↓ 
→␈ε"Plan␈α∂to␈α∞\turn
␈βπ,␈↓ λN␈ε5DEB␈α␈UG:=␈α∪1
␈βπU␈↓ α4␈ε"o{"␈αthese␈αcommands␈αby␈↓ εo␈ε"when␈αthe␈αprogram␈αruns␈αcorrectly.
␈βπW␈↓ ¬9␈ε5DE␈α␈BUG:=␈α∪0
␈βλ↓␈↓ ↓Z␈ε6∂␈↓ ↓}␈ε"T␈α⎇o␈α
use␈α∞the␈α∞results␈α∞of␈α∞such␈α
diagn␈α↓ostic␈α∞prin␈α␈ts,␈α∞check␈α∞whether␈α∞the␈α∞v␈α}ariables␈α
satisfy
␈βλ,␈↓ α4␈ε"their␈αλin␈α␈tended␈α	relations.␈α∞Is␈α	there␈αλa␈α	v␈α}ariable␈αλthat␈α	doesn't␈αλchange␈α	when␈αλit␈αλsh␈α↓ould?
␈βλW␈↓ α4␈ε"Do␈α
the␈αv␈α}ariables␈α
ha␈α␈v␈α␈e␈αthe␈αrigh␈α␈t␈α
sign?␈α⊂Does␈α
the␈αprin␈α␈ted␈αv␈α}alue␈α
con␈α␈tain␈αa␈α
decimal
␈β	α␈↓ α4␈ε"poin␈α␈t?␈α≤(An␈α⊂easy␈α⊂mistak␈α␈e␈α⊂is␈α⊂to␈α⊂declare␈α⊃a␈α⊂v␈α}ariable␈↓ 	m␈ε"which␈α⊂sh␈α↓ould␈α⊂be
␈β	∧␈↓ λY␈ε5INTE␈α␈GER
␈β	-␈↓ α␈␈ε".)
␈β	/␈↓ α4␈ε5RE␈α␈AL
␈β	Y␈↓ ↓Z␈ε6∂␈↓ ↓}␈ε"Before␈α
accepting␈α	a␈α
program␈α
as␈α
correct,␈α
mak␈α␈e␈α
sure␈α
that␈α
ev␈α␈ery␈α
part␈α
gets␈α
executed␈α	at
␈β
∧␈↓ α4␈ε"least␈α	once.␈α∂Use␈αλit␈α	on␈α	data␈α	that␈α	cause␈α	it␈α	to␈α	try␈α	both␈α	branches␈α	of␈α	each␈αλconditional
␈β
0␈↓ α4␈ε"command,␈αfor␈αinstance.
␈β
[␈↓ ↓Z␈ε6∂␈↓ ↓}␈ε"If␈αit␈α
is␈αto␈α↓o␈αhard␈αto␈αfollo␈α␈w␈αwhat␈αthe␈αprogram␈αis␈αdoing␈αon␈α
the␈αassigned␈αdata,␈αchange
␈βπ␈↓ α4␈ε"it␈αto␈αdo␈αan␈αanalogous␈αbut␈αsmaller␈αproblem.␈α⊂Instead␈αof␈αcomputing
␈β←␈↓ ¬∀␈ε"1␈αλ+␈αλ1/2␈αλ+␈αλ1/3␈αλ+␈↓ π.␈ε6↓␈αε↓␈αε↓␈↓ π`␈ε"+␈αλ1/10000,
␈β7␈↓ α4␈ε"compute
␈β
⊂␈↓ ∧z␈ε"1␈αλ+␈αλ1/2␈αλ+␈αλ1/3␈αλ+␈↓ π∀␈ε6↓␈αε↓␈αε↓␈↓ πF␈ε"+␈αλ1/␈↓ λ⊗␈ε(N␈↓ λ9␈ε",
␈β
W␈↓ α4␈ε"and␈αuse
␈β∞1␈↓ βD␈ε5N␈α∩:=␈α∪4
␈β∂λ␈↓ α4␈ε"at␈α
the␈αstart␈αof␈αthe␈αprogram;␈αlater,␈αchange␈αthe␈α
4␈αto␈α10000.␈α⊂Where␈α
possible,␈αtest
␈β∂3␈↓ α4␈ε"the␈αprogram␈αon␈αdata␈αfor␈αwhich␈αy␈α␈ou␈αkn␈α↓o␈α␈w␈αor␈αcan␈αcheck␈αthe␈αresults.
␈β⊃∨

␈β↓H␈↓ ↓$␈∧↓H↓$α
u
␈β↓J␈↓ ↓$␈∧↓J↓$Hα␈↓ "␈∧↓J"Hα␈↓ ↔␈∧↓J↔Hα
␈β↓V␈↓ β-␈ε>D␈α␈iagno␈α␈sin␈α␈g␈α∞I␈α↓n␈α␈corr␈α␈ec␈α↓t␈α∞R␈α␈e␈α↓s␈α␈ult␈α␈s␈α∂o␈α␈f␈α∂Prog␈α␈rams
␈β↓\␈↓ K␈ε"89
␈βα⊃␈↓ ↓$␈∧α⊃↓$α
u
␈βαO␈↓ ↓Z␈ε6∂␈↓ ↓}␈ε"Don't␈α	mak␈α␈e␈α
random␈α
changes␈α	in␈α
y␈α␈our␈α
program␈α	just␈α
to␈α
see␈α	if␈α
something␈α
will␈α	happen.
␈βαz␈↓ α4␈ε"Ev␈α␈en␈α	if␈α
it␈α
mak␈α␈es␈α
y␈α␈our␈α
program␈α
giv␈α␈e␈α
correct␈α	results␈α
on␈α
the␈α
giv␈α␈en␈α
data␈α
(it␈α	seldom
␈ββ%␈↓ α4␈ε"will),␈αit␈αusually␈αlea␈α␈v␈α␈es␈α
the␈αprogram␈αwith␈αbugs.␈α⊂If␈αnecessary,␈αrethink␈αthe␈α
design
␈ββP␈↓ α4␈ε"of␈α⊂the␈α⊂program␈α∂and␈α⊂write␈α⊂it␈α⊂out␈α⊂again␈α⊂from␈α⊂scratch.␈α≤I␈α⊂once␈α⊂did␈α⊂that␈α⊂for␈α∂a
␈ββ|␈↓ α4␈ε"4000-line␈αprogram,␈αand␈αsa␈α␈v␈α␈ed␈αm␈α␈yself␈αm␈α␈uch␈αlabor␈αby␈αn␈α↓ot␈αha␈α␈ving␈αto␈α|nd␈αall␈αthe
␈β∧'␈↓ α4␈ε"bugs␈α	in␈α
m␈α␈y␈α	junky␈α
|rst␈α
dra$.␈α∂In␈α	the␈α
process,␈α
I␈α
w␈α␈as␈α	able␈α
to␈α	simplify␈α
the␈α	program
␈β∧R␈↓ α4␈ε"and␈αmak␈α␈e␈αit␈αm␈α↓ore␈αe}cien␈α␈t.
␈β⊃_

␈β↓H␈↓ ↓$␈∧↓H↓$α
u
␈β↓J␈↓ ↓$␈∧↓J↓$Hα␈↓ α→␈∧↓Jα→Hα␈↓ ↔␈∧↓J↔Hα
␈β↓V␈↓ ∧u␈ε>Desi␈α␈gn␈α∞of␈α∞C␈α↓o␈α␈ndi␈α␈tio␈α␈nal␈α∞C␈α↓o␈α␈mmand␈α␈s
␈β↓\␈↓ ↓M␈ε"90
␈βα⊃␈↓ ↓$␈∧α⊃↓$α
u
␈βα[␈↓ ↓H␈ε>D␈α␈e␈α↓s␈α␈ign␈α∞o␈α␈f␈α∂Cond␈α␈iti␈α␈onal␈α∞Comm␈α␈a␈α↓n␈α␈ds.
␈ββ≡␈↓ α␈ε"Let␈αus␈α
design␈αa␈αprogram␈α
to␈αprin␈α␈t␈αon␈αone␈α
page␈αan␈αornamen␈α␈tal␈α
letter␈αB,␈αas␈αsh␈α↓o␈α␈wn
␈ββI␈↓ ↓H␈ε"in␈αthe␈αdiagram␈αbelo␈α␈w.
␈βλn␈↓ α␈ε"The␈α∂|rst␈α∂part␈α∂of␈α∂the␈α∂diagram␈α∂sh␈α↓o␈α␈ws␈α∞h␈α↓o␈α␈w␈α∂the␈α∂letter␈α∂sh␈α↓ould␈α∂appear;␈α⊃the␈α∞second
␈β	→␈↓ ↓H␈ε"sh␈α↓o␈α␈ws␈α∂the␈α⊂geometrical␈α⊂parameters␈α⊂of␈α∂the␈α⊂shaded␈α⊂region.␈α≠The␈α⊂letter␈α⊂is␈α⊂assumed␈α∂to
␈β	D␈↓ ↓H␈ε"be␈α
symmetrical␈α
about␈α∞its␈α
h␈α↓orizon␈α␈tal␈α
cen␈α␈ter␈α∞line,␈α
and␈α∞all␈α
the␈α
lines␈α
are␈α∞assumed␈α
to␈α
be
␈β	p␈↓ ↓H␈ε"one␈α∞inch␈α∞wide.␈α↔W␈α⎇e␈α∞recall␈α∞that␈α∞the␈α∞computer␈α∂prin␈α␈ts␈α∞characters␈α∞at␈α∞a␈α∞v␈α␈ertical␈α∞spacing
␈β
≠␈↓ ↓H␈ε"of␈α
one␈α∞sixth␈α
of␈α∞an␈α
inch,␈α∞and␈α
a␈α∞h␈α↓orizon␈α␈tal␈α
spacing␈α∞of␈α
one␈α∞ten␈α␈th␈α
of␈α∞an␈α
inch.␈α∃W␈α⎇e␈α
shall
␈β
F␈↓ ↓H␈ε"use␈αasterisks␈α(␈↓ β5␈ε")␈αto␈α|ll␈αthe␈αshaded␈αarea␈αof␈αthe␈αletter.␈α⊂The␈αdot␈αat␈αthe␈αcen␈α␈ter␈αof␈αthe␈αle$
␈β
H␈↓ β"␈ε5*
␈β
q␈↓ ↓H␈ε"edge␈αof␈αthe␈α\B"␈αwill␈αbe␈αused␈αas␈αthe␈αorigin␈αof␈αa␈αCartesian␈αco␈α↓ordinate␈αsystem.
␈β≤␈↓ α␈ε"In␈αoutline,␈αa␈αprogram␈αto␈αprin␈α␈t␈αsuch␈αa␈αletter␈αmigh␈α␈t␈αbe:
␈βZ␈↓ ↓H␈ε∃FOR␈↓ α␈ε∃L:=1␈↓ αa␈ε∃TO␈↓ β∀␈ε∃60␈↓ βG␈ε∃DO␈↓ ∧≤␈ε∃(*␈↓ ∧O␈ε∃PRINT␈↓ ¬5␈ε∃THE␈↓ ¬y␈ε∃L-TH␈↓ εN␈ε∃LINE␈↓ π#␈ε∃ON␈↓ πV␈ε∃THE␈↓ λ~␈ε∃PAGE␈↓ λo␈ε∃*)
␈β↓␈↓ ↓{␈ε∃BEGIN
␈β)␈↓ ↓{␈ε∃FOR␈↓ α?␈ε∃C:=1␈↓ β∀␈ε∃TO␈↓ βG␈ε∃132␈↓ ∧␈ε∃DO␈↓ ∧O␈ε∃(*␈↓ ¬α␈ε∃PRINT␈↓ ¬h␈ε∃THE␈↓ ε,␈ε∃C-TH␈↓ π↓␈ε∃CHARACTER␈↓ λ+␈ε∃ON␈↓ λ↑␈ε∃THE␈↓ 	"␈ε∃LINE␈↓ 	w␈ε∃*)
␈βQ␈↓ α.␈ε∃1.␈↓ αr␈ε∃Choose␈↓ βi␈ε∃between␈↓ ∧q␈ε∃printing␈↓ ε
␈ε∃a␈↓ ε,␈ε∃blank␈↓ π∩␈ε∃and␈↓ πV␈ε∃an␈↓ λ	␈ε∃asterisk␈↓ 	"␈ε∃as
␈βx␈↓ αr␈ε∃the␈↓ β6␈ε∃C-th␈↓ ∧␈ε∃character␈↓ ¬5␈ε∃of␈↓ ¬h␈ε∃the␈↓ ε,␈ε∃L-th␈↓ π↓␈ε∃line␈↓ πV␈ε∃of␈↓ λ	␈ε∃the␈↓ λM␈ε∃page;
␈β
 ␈↓ ↓{␈ε∃WRITELN
␈β
G␈↓ ↓{␈ε∃END
␈β∞∧␈↓ α␈ε"W␈α⎇e␈α	are␈αλle$␈α	with␈α	the␈α	problem␈αλof␈α	deciding␈α	whether␈αλthe␈α	character␈α	at␈αλa␈α	giv␈α␈en␈α	ro␈α␈w␈αλand
␈β∞/␈↓ ↓H␈ε"column␈α
of␈α
the␈αpage␈α
is␈αinside␈α
the␈α
shaded␈αregion␈α
or␈αn␈α↓ot.␈α∂A␈α
|rst␈αstep␈α
is␈αto␈α
determine␈α
the
␈β∞[␈↓ ↓H␈ε"Cartesian␈α	co␈α↓ordinates␈α	of␈α	the␈α
poin␈α␈t␈α	at␈α	which␈α	the␈α	character␈α
will␈α	be␈α	prin␈α␈ted.␈α∂W␈α⎇e␈α	simplify
␈β∂ε␈↓ ↓H␈ε"the␈α	problem␈α
sligh␈α␈tly␈α
by␈α	taking␈α
in␈α␈to␈α
accoun␈α␈t␈α
the␈α	symmetry;␈αw␈α␈e␈α	tak␈α␈e␈α
the␈α
absolute␈α	v␈α}alue
␈β∂1␈↓ ↓H␈ε"of␈α∞the␈α∂v␈α␈ertical␈α∂co␈α↓ordinate,␈α∂since␈α∂the␈α∂decision␈α∂for␈α∞the␈α∂poin␈α␈t␈α∂(␈ε(x␈ε",␈↓ 	(␈ε(y␈↓ 	;␈ε")␈α∞is␈α∂the␈α∂same␈α∂as␈α∞for
␈β⊃∨

␈β↓H␈↓ ↓$␈∧↓H↓$α
u
␈β↓J␈↓ ↓$␈∧↓J↓$Hα␈↓ "␈∧↓J"Hα␈↓ ↔␈∧↓J↔Hα
␈β↓V␈↓ βz␈ε>Desi␈α␈gn␈α∞of␈α∞C␈α↓o␈α␈ndi␈α␈tio␈α␈nal␈α∞C␈α↓o␈α␈mmand␈α␈s
␈β↓\␈↓ K␈ε"91
␈βα⊃␈↓ ↓$␈∧α⊃↓$α
u
␈βαQ␈↓ ↓H␈ε"the␈α
poin␈α␈t␈α
(␈ε(x␈ε",␈ε6␈αε␈␈↓ β9␈ε(y␈↓ βL␈ε");␈α
this␈α
is␈α
wh␈α␈y␈α
w␈α␈e␈α
placed␈α
the␈α
origin␈α
on␈α
the␈α
letter's␈α
h␈α↓orizon␈α␈tal␈α
axis␈α
of
␈βα|␈↓ ↓H␈ε"symmetry.␈α⊂W␈α⎇e␈αn␈α↓o␈α␈w␈αexpress␈αthe␈αcen␈α␈tral␈αiterated␈αcommand␈αof␈αthe␈αprogram␈αas
␈ββJ␈↓ α≥␈ε∃(*␈↓ αP␈ε∃1␈↓ αr␈ε∃*)
␈ββq␈↓ α≥␈ε∃VAR␈↓ αa␈ε∃X,Y␈↓ β%␈ε∃:␈↓ βG␈ε∃REAL;␈↓ ∧-␈ε∃(*this␈↓ ¬$␈ε∃line␈↓ ¬y␈ε∃goes␈↓ εN␈ε∃at␈↓ π↓␈ε∃top␈↓ πE␈ε∃of␈↓ πx␈ε∃program*)
␈β∧→␈↓ α≥␈ε∃BEGIN
␈β∧@␈↓ α≥␈ε∃X␈↓ α?␈ε∃:=␈↓ αr␈ε∃(C-40)/10;
␈β∧h␈↓ α≥␈ε∃Y␈↓ α?␈ε∃:=␈↓ αr␈ε∃ABS(L-30.5)/6;
␈β¬⊂␈↓ α≥␈ε∃(*␈↓ αa␈ε∃THE␈↓ β%␈ε∃ORIGIN␈↓ ∧≤␈ε∃LIES␈↓ ∧q␈ε∃BETWEEN␈↓ ¬y␈ε∃THE␈↓ ε=␈ε∃30TH␈↓ π∩␈ε∃AND␈↓ πV␈ε∃31ST
␈β¬7␈↓ αP␈ε∃LINES,␈↓ βG␈ε∃AT␈↓ βz␈ε∃THE␈↓ ∧>␈ε∃40TH␈↓ ¬∪␈ε∃COLUMN,␈↓ ε≠␈ε∃AND␈↓ ε←␈ε∃C-40␈↓ π4␈ε∃IS␈↓ πg␈ε∃THE
␈β¬←␈↓ αP␈ε∃NUMBER␈↓ βG␈ε∃OF␈↓ βz␈ε∃COLUMNS␈↓ ¬α␈ε∃RIGHT␈↓ ¬h␈ε∃OF␈↓ ε≠␈ε∃THE␈↓ ε←␈ε∃ORIGIN␈↓ πV␈ε∃WE␈↓ λ	␈ε∃ARE,
␈βεε␈↓ αP␈ε∃AT␈↓ ββ␈ε∃10␈↓ β6␈ε∃COLUMNS␈↓ ∧>␈ε∃PER␈↓ ¬α␈ε∃INCH.␈↓ ¬h␈ε∃*)
␈βε.␈↓ ↓H␈ε∃1.1␈↓ α≥␈ε∃Choose␈↓ β∀␈ε∃between␈↓ ∧≤␈ε∃printing␈↓ ¬5␈ε∃a␈↓ ¬W␈ε∃blank␈↓ ε=␈ε∃and␈↓ π↓␈ε∃an␈↓ π4␈ε∃asterisk␈↓ λM␈ε∃at␈↓ 	␈ε∃the
␈βεT␈↓ εN␈ε7∃
␈βεV␈↓ α≥␈ε∃point␈↓ ββ␈ε∃(X,Y)␈↓ βi␈ε∃on␈↓ ∧≤␈ε∃the␈↓ ∧`␈ε∃page,␈↓ ¬F␈ε∃where␈↓ ε,␈ε∃Y␈↓ π␈ε∃0.
␈βε⎇␈↓ α≥␈ε∃END.
␈βπZ␈↓ α␈ε"Here,␈α∂h␈α↓o␈α␈w␈α␈ev␈α␈er,␈α∞w␈α␈e␈α∞need␈α∞only␈α∞consider␈α∞v␈α}alues␈α∞of␈↓ λP␈ε"which␈α∞fall␈α∞in␈α∞the␈α∞rectangle
␈βπ\␈↓ λ	␈ε5X,Y
␈βλε␈↓ ↓H␈ε"sh␈α↓o␈α␈wn␈αbelo␈α␈w:
␈β␈␈↓ ↓H␈ε"W␈α⎇e␈α
ma␈α␈y␈α
observ␈α␈e␈α
that␈α
this␈α∞|gure␈α
consists␈α
of␈α
straigh␈α␈t␈α∞lines␈α
in␈α
the␈α
region␈↓ 
Y␈ε6∀␈↓ #␈ε",␈α
and
␈β↓␈↓ 
3␈ε5X␈↓ ⊂␈ε55
␈β*␈↓ ↓H␈ε"curv␈α␈ed␈αlines␈αin␈αthe␈αregion␈↓ ¬ε␈ε">␈↓ ¬P␈ε";␈αth␈α␈us␈αa␈αnatural␈α|rst␈αstep␈αis␈αto␈αtest␈αwhether␈↓ +␈ε">
␈β,␈↓ ∧`␈ε5X␈↓ ¬=␈ε55␈↓ ¬␈ε5X␈↓ b␈ε55
␈βV␈↓ ↓H␈ε"or␈αn␈α↓ot.␈α⊂W␈α⎇e␈αthen␈αha␈α␈v␈α␈e
␈β
#␈↓ αP␈ε∃(*␈↓ ββ␈ε∃1.1␈↓ βG␈ε∃*)
␈β
K␈↓ αP␈ε∃IF␈↓ ββ␈ε∃X␈↓ β%␈ε∃>␈↓ βG␈ε∃5␈↓ βi␈ε∃THEN
␈β
s␈↓ ↓H␈ε∃1.1.1␈↓ ββ␈ε∃Choose␈↓ βz␈ε∃between␈↓ ¬α␈ε∃printing␈↓ ε≠␈ε∃a␈↓ ε=␈ε∃blank␈↓ π#␈ε∃and␈↓ πg␈ε∃an␈↓ λ~␈ε∃asterisk
␈β∞~␈↓ ββ␈ε∃for␈↓ βG␈ε∃(X,Y)␈↓ ∧-␈ε∃known␈↓ ¬∪␈ε∃to␈↓ ¬F␈ε∃be␈↓ ¬y␈ε∃in␈↓ ε,␈ε∃region␈↓ π#␈ε∃B␈↓ πE␈ε∃of␈↓ πx␈ε∃the␈↓ λ<␈ε∃diagram␈↓ 	D␈ε∃below
␈β∞B␈↓ αP␈ε∃ELSE
␈β∞i␈↓ ↓H␈ε∃1.1.2␈↓ ββ␈ε∃Choose␈↓ βz␈ε∃between␈↓ ¬α␈ε∃blank␈↓ ¬h␈ε∃and␈↓ ε,␈ε∃asterisk␈↓ πE␈ε∃for␈↓ λ	␈ε∃(X,Y)
␈β∂⊃␈↓ ββ␈ε∃in␈↓ β6␈ε∃region␈↓ ∧-␈ε∃A
␈β⊃_

␈β↓H␈↓ ↓$␈∧↓H↓$α
u
␈β↓J␈↓ ↓$␈∧↓J↓$Hα␈↓ α→␈∧↓Jα→Hα␈↓ ↔␈∧↓J↔Hα
␈β↓V␈↓ ∧u␈ε>Desi␈α␈gn␈α∞of␈α∞C␈α↓o␈α␈ndi␈α␈tio␈α␈nal␈α∞C␈α↓o␈α␈mmand␈α␈s
␈β↓\␈↓ ↓M␈ε"92
␈βα⊃␈↓ ↓$␈∧α⊃↓$α
u
␈βεM␈↓ α␈ε"The␈α⊃|rst␈α∩test␈α⊃can␈α⊃easily␈α∩be␈α⊃rewritten,␈α∪|rst␈α⊃calculating␈α⊃the␈α∩distance␈α⊃from␈α⊃the
␈βεx␈↓ ↓H␈ε"comm␈α↓on␈αcen␈α␈ter␈αof␈αthe␈αcircles:
␈βπf␈↓ ↓{␈ε∃(*␈↓ α.␈ε∃1.1.1␈↓ β∀␈ε∃*)
␈βλ∞␈↓ α␈ε∃VAR␈↓ αP␈ε∃DISTANCE␈↓ βi␈ε∃:REAL;(*This␈↓ ¬F␈ε∃line␈↓ ε≠␈ε∃is␈↓ εN␈ε∃placed␈↓ πE␈ε∃among␈↓ λ+␈ε∃the␈↓ λo␈ε∃declarations*)
␈βλ5␈↓ ↓{␈ε∃BEGIN
␈βλ]␈↓ ↓{␈ε∃DISTANCE␈↓ β∀␈ε∃:=␈↓ βG␈ε∃SQRT(SQR(X-5)␈↓ ¬5␈ε∃+␈↓ ¬W␈ε∃SQR(Y-1.75));
␈β	¬␈↓ ↓{␈ε∃IF␈↓ α.␈ε∃DISTANCE␈↓ βG␈ε∃>␈↓ βi␈ε∃2.25␈↓ ∧>␈ε∃THEN␈↓ ¬∪␈ε∃WRITE('␈↓ ε≠␈ε∃')
␈β	,␈↓ ↓{␈ε∃ELSE␈↓ αP␈ε∃BEGIN␈↓ β6␈ε∃(*␈↓ βi␈ε∃DISTANCE␈↓ ¬α␈ε∃<=␈↓ ¬5␈ε∃2.25␈↓ ε
␈ε∃*)
␈β	T␈↓ α.␈ε∃IF␈↓ αa␈ε∃DISTANCE␈↓ βz␈ε∃>=␈↓ ∧-␈ε∃1.25␈↓ ¬α␈ε∃THEN␈↓ ¬W␈ε∃WRITE('*')
␈β	{␈↓ α.␈ε∃ELSE␈↓ ββ␈ε∃(*␈↓ β6␈ε∃DISTANCE␈↓ ∧O␈ε∃<␈↓ ∧q␈ε∃1.25␈↓ ¬F␈ε∃*)
␈β
#␈↓ α.␈ε∃WRITE␈↓ β∀␈ε∃('␈↓ βG␈ε∃')
␈β
K␈↓ ↓{␈ε∃END
␈βi␈↓ α␈ε"The␈α∂second␈α∂test␈α∂ma␈α␈y␈α∂be␈α∂further␈α∞simpli|ed␈α∂by␈α∂separating␈α∂it␈α∂in␈α␈to␈α∂t␈α␈w␈α␈o␈α∂cases,␈α∂ac-
␈β∀␈↓ ↓H␈ε"cording␈αas␈↓ β→␈ε6∃␈↓ βo␈ε"or␈↓ ∧A␈ε"<␈↓ ¬␈ε":
␈β⊗␈↓ αt␈ε5Y␈↓ βP␈ε53␈↓ ∧≠␈ε5Y␈↓ ∧x␈ε53
␈β
β␈↓ αr␈ε∃(*␈↓ β%␈ε∃1.1.2␈↓ ∧␈ε∃*)
␈β
*␈↓ αr␈ε∃IF␈↓ β%␈ε∃Y␈↓ βG␈ε∃>=␈↓ βz␈ε∃3␈↓ ∧≤␈ε∃THEN
␈β
R␈↓ ↓H␈ε∃1.1.2.1␈↓ β%␈ε∃Choose␈↓ ∧≤␈ε∃between␈↓ ¬$␈ε∃blank␈↓ ε
␈ε∃and␈↓ εN␈ε∃asterisk␈↓ πg␈ε∃for␈↓ λ+␈ε∃a␈↓ λM␈ε∃point
␈β
z␈↓ β%␈ε∃known␈↓ ∧␈ε∃to␈↓ ∧>␈ε∃be␈↓ ∧q␈ε∃in␈↓ ¬$␈ε∃region␈↓ ε≠␈ε∃AA
␈β∞!␈↓ αr␈ε∃ELSE
␈β∞I␈↓ ↓H␈ε∃1.1.2.2␈↓ β%␈ε∃Choose␈↓ ∧≤␈ε∃for␈↓ ∧`␈ε∃a␈↓ ¬α␈ε∃point␈↓ ¬h␈ε∃known␈↓ εN␈ε∃to␈↓ π↓␈ε∃be␈↓ π4␈ε∃in␈↓ πg␈ε∃region␈↓ λ↑␈ε∃AB
␈β∞p␈↓ αr␈ε∃END
␈β⊃_

␈β↓H␈↓ ↓$␈∧↓H↓$α
u
␈β↓J␈↓ ↓$␈∧↓J↓$Hα␈↓ "␈∧↓J"Hα␈↓ ↔␈∧↓J↔Hα
␈β↓V␈↓ βz␈ε>Desi␈α␈gn␈α∞of␈α∞C␈α↓o␈α␈ndi␈α␈tio␈α␈nal␈α∞C␈α↓o␈α␈mmand␈α␈s
␈β↓\␈↓ K␈ε"93
␈βα⊃␈↓ ↓$␈∧α⊃↓$α
u
␈βλ∨␈↓ ↓H␈ε"A$er␈αλa␈α	|nal␈αλdecomposition␈α	of␈αλthe␈α	remaining␈αλtests,␈α
w␈α␈e␈αλha␈α␈v␈α␈e␈α	the␈αλprogram␈α	which␈αλfollo␈α␈ws:
␈β
a␈↓ ↓H␈ε∃BEGIN
␈βλ␈↓ ↓H␈ε∃FOR␈↓ α␈ε∃L:=␈↓ αP␈ε∃1␈↓ αr␈ε∃TO␈↓ β%␈ε∃60␈↓ βX␈ε∃DO␈↓ ∧␈ε∃(*␈↓ ∧>␈ε∃PRINT␈↓ ¬$␈ε∃L-TH␈↓ ¬y␈ε∃LINE␈↓ εN␈ε∃*)
␈β0␈↓ ↓{␈ε∃BEGIN
␈βW␈↓ ↓{␈ε∃FOR␈↓ α?␈ε∃C:=1␈↓ β∀␈ε∃TO␈↓ βG␈ε∃132␈↓ ∧␈ε∃DO␈↓ ∧>␈ε∃(*␈↓ ∧q␈ε∃PRINT␈↓ ¬W␈ε∃C-TH␈↓ ε,␈ε∃CHARACTER␈↓ πV␈ε∃*)
␈β␈␈↓ α.␈ε∃BEGIN
␈β'␈↓ α.␈ε∃X␈↓ αP␈ε∃:=␈↓ ββ␈ε∃(C-40)/10;
␈βN␈↓ α.␈ε∃Y␈↓ αP␈ε∃:=␈↓ ββ␈ε∃ABS((L-30.5)/6);
␈βv␈↓ α.␈ε∃(*␈↓ αa␈ε∃THE␈↓ β%␈ε∃ORIGIN␈↓ ∧≤␈ε∃LIES␈↓ ∧q␈ε∃BETWEEN␈↓ ¬y␈ε∃THE␈↓ ε=␈ε∃30TH␈↓ π∩␈ε∃AND␈↓ πV␈ε∃31ST␈↓ λ+␈ε∃LINES,␈↓ 	"␈ε∃AT␈↓ 	U␈ε∃THE
␈β
≥␈↓ αa␈ε∃40TH␈↓ β6␈ε∃COLUMN␈↓ ∧-␈ε∃*)
␈β⊃_

␈β↓H␈↓ ↓$␈∧↓H↓$α
u
␈β↓J␈↓ ↓$␈∧↓J↓$Hα␈↓ α→␈∧↓Jα→Hα␈↓ ↔␈∧↓J↔Hα
␈β↓V␈↓ ∧u␈ε>Desi␈α␈gn␈α∞of␈α∞C␈α↓o␈α␈ndi␈α␈tio␈α␈nal␈α∞C␈α↓o␈α␈mmand␈α␈s
␈β↓\␈↓ ↓M␈ε"94
␈βα⊃␈↓ ↓$␈∧α⊃↓$α
u
␈βαP␈↓ α.␈ε∃IF␈↓ αa␈ε∃X␈↓ ββ␈ε∃>␈↓ β%␈ε∃5␈↓ βG␈ε∃THEN␈↓ ∧≤␈ε∃(*␈↓ ∧O␈ε∃REGION␈↓ ¬F␈ε∃B␈↓ ¬h␈ε∃*)
␈βαx␈↓ αa␈ε∃BEGIN
␈ββ∨␈↓ αa␈ε∃DISTANCE␈↓ βz␈ε∃:=␈↓ ∧-␈ε∃SQRT((SQR(X-5)+SQR(Y-1.75)));
␈ββG␈↓ αa␈ε∃IF␈↓ β∀␈ε∃DISTANCE␈↓ ∧-␈ε∃>␈↓ ∧O␈ε∃2.25␈↓ ¬$␈ε∃THEN␈↓ ¬y␈ε∃WRITE('␈↓ π↓␈ε∃')
␈ββo␈↓ αa␈ε∃ELSE␈↓ β6␈ε∃(*␈↓ βi␈ε∃DISTANCE␈↓ ¬α␈ε∃<=␈↓ ¬5␈ε∃2.25␈↓ ε
␈ε∃*)
␈β∧⊗␈↓ β∀␈ε∃IF␈↓ βG␈ε∃DISTANCE␈↓ ∧`␈ε∃>=␈↓ ¬∪␈ε∃1.25␈↓ ¬h␈ε∃THEN␈↓ ε=␈ε∃WRITE('*')
␈β∧>␈↓ β∀␈ε∃ELSE␈↓ βi␈ε∃(*␈↓ ∧≤␈ε∃DISTANCE␈↓ ¬5␈ε∃<␈↓ ¬W␈ε∃1.25␈↓ ε,␈ε∃*)
␈β∧e␈↓ β%␈ε∃WRITE('␈↓ ∧-␈ε∃')
␈β¬
␈↓ αa␈ε∃END
␈β¬\␈↓ α.␈ε∃ELSE␈↓ ββ␈ε∃(*␈↓ β6␈ε∃REGION␈↓ ∧-␈ε∃A␈↓ ∧O␈ε∃*)
␈βε∧␈↓ αa␈ε∃IF␈↓ β∀␈ε∃Y␈↓ β6␈ε∃>=␈↓ βi␈ε∃3␈↓ ∧␈ε∃THEN
␈βε+␈↓ β∀␈ε∃IF␈↓ βG␈ε∃Y␈↓ βi␈ε∃>␈↓ ∧␈ε∃4␈↓ ∧-␈ε∃THEN␈↓ ¬α␈ε∃WRITE('␈↓ ε
␈ε∃')
␈βεS␈↓ β∀␈ε∃ELSE␈↓ βi␈ε∃IF␈↓ ∧≤␈ε∃X␈↓ ∧>␈ε∃>=␈↓ ∧q␈ε∃-1␈↓ ¬$␈ε∃THEN␈↓ ¬y␈ε∃WRITE('*')
␈βε{␈↓ βG␈ε∃ELSE␈↓ ∧≤␈ε∃WRITE('␈↓ ¬$␈ε∃')
␈βπJ␈↓ αa␈ε∃ELSE␈↓ β6␈ε∃IF␈↓ βi␈ε∃X␈↓ ∧␈ε∃<␈↓ ∧-␈ε∃0␈↓ ∧O␈ε∃THEN␈↓ ¬$␈ε∃WRITE('␈↓ ε,␈ε∃')
␈βπq␈↓ β∀␈ε∃ELSE␈↓ βi␈ε∃IF␈↓ ∧≤␈ε∃X␈↓ ∧>␈ε∃<=␈↓ ∧q␈ε∃1␈↓ ¬∪␈ε∃THEN␈↓ ¬h␈ε∃WRITE('*')
␈βλ→␈↓ βG␈ε∃ELSE␈↓ ∧≤␈ε∃IF␈↓ ∧O␈ε∃Y␈↓ ∧q␈ε∃>␈↓ ¬∪␈ε∃0.5␈↓ ¬W␈ε∃THEN␈↓ ε,␈ε∃WRITE('␈↓ π4␈ε∃')
␈βλA␈↓ βz␈ε∃ELSE␈↓ ∧O␈ε∃WRITE('*')
␈βλh␈↓ α.␈ε∃END␈↓ αr␈ε∃;
␈β	⊂␈↓ ↓{␈ε∃WRITELN
␈β	7␈↓ ↓{␈ε∃END
␈β	←␈↓ ↓H␈ε∃END␈↓ α␈ε∃.
␈β
≤␈↓ α␈ε"The␈α
abo␈α␈v␈α␈e␈α	example␈α
illustrates␈α	that␈α
a␈α
complicated␈α	decision␈α
can␈α	o$en␈α
be␈α	expressed
␈β
G␈↓ ↓H␈ε"as␈αa␈αseries␈αof␈αtests,␈αeach␈αof␈αa␈αsimple␈αcondition.␈α⊂In␈αa␈αcommand␈αof␈αthe␈αform
␈β≡␈↓ β⊂␈ε6E␈↓ ∧≠␈ε6C␈↓ ¬3␈ε6C
␈β ␈↓ αX␈ε5IF␈↓ β<␈ε5THEN␈↓ ∧U␈ε5E␈α␈LSE
␈β*␈↓ ∧1␈ε%1␈↓ ¬I␈ε%2
␈βt␈↓ ↓H␈ε"it␈α∞is␈α∂possible␈α∂to␈α∞simplify␈α∂the␈α∂design␈α∞of␈↓ ε6␈ε6C␈↓ εl␈ε"by␈α∞using␈α∂the␈α∂kn␈α↓o␈α␈wledge␈α∞that␈α∂when␈↓ '␈ε6C␈↓ \␈ε"is
␈β␈↓ εL␈ε%1␈↓ =␈ε%1
␈β∨␈↓ ↓H␈ε"executed,␈αw␈α␈e␈α
kn␈α↓o␈α␈w␈αthat␈↓ ∧L␈ε6E␈↓ ∧r␈ε"is␈αtrue;␈α
similarly,␈αin␈α
designing␈↓ λS␈ε6C␈↓ λz␈ε",␈α
w␈α␈e␈αneed␈α
treat␈αonly␈αthe
␈β,␈↓ λi␈ε%2
␈βJ␈↓ ↓H␈ε"case␈α∂that␈↓ αh␈ε6E␈↓ β⊃␈ε"is␈α∂false.␈α~O$en,␈α⊃there␈α∂is␈α∂a␈α⊂ch␈α↓oice␈α∂of␈α⊂what␈α∂condition␈α∂to␈α⊂test␈α∂|rst.␈α~The
␈βv␈↓ ↓H␈ε"resulting␈αprogram␈αis␈αsimplest␈αif␈αthe␈αcondition␈αis␈αso␈αch␈α↓osen␈αthat,␈αas␈αfar␈αas␈αpossible,␈αn␈α↓o
␈β
!␈↓ ↓H␈ε"other␈αcondition␈αneed␈αbe␈αtested␈αin␈αboth␈↓ ε0␈ε6C␈↓ εc␈ε"and␈↓ π)␈ε6C␈↓ πP␈ε".
␈β
-␈↓ εF␈ε%1␈↓ π?␈ε%2
␈β
b␈↓ ↓H␈ε2Exercise
␈β∞␈↓ α␈ε$Simpli␈α␈fy␈αthe␈αabov␈α␈e␈αprog␈α↓ram␈αby␈αusi␈α␈ng␈αthe␈αlogic␈α␈a␈α↓l␈αc␈α␈o␈α↓nne␈α␈cti␈α␈v␈α␈es␈αin␈αt␈α␈he␈αc␈α␈o␈α↓ndi␈α␈ti␈α␈o␈α↓ns.␈α⊃F␈α}or␈αexam␈α↓pl␈α␈e,
␈β∞/␈↓ ↓H␈ε$the␈α	|ve␈α	li␈α␈nes␈α
fo␈α↓l␈α␈lo␈α␈wing␈α
the␈α
computa␈α↓t␈α␈ion␈α
o␈α↓f␈↓ π
␈ε$could␈α
be␈α
wri␈α␈tten
␈β∞0␈↓ επ␈ε⊗DIST␈α↓ANCE
␈β∞h␈↓ αP␈ε∃IF␈↓ ββ␈ε∃(DISTANCE␈↓ ∧-␈ε∃>␈↓ ∧O␈ε∃2.25)␈↓ ¬5␈ε∃OR␈↓ ¬h␈ε∃(DISTANCE␈↓ π∩␈ε∃<␈↓ π4␈ε∃1.25)␈↓ λ~␈ε∃THEN
␈β∂∂␈↓ ββ␈ε∃WRITE('␈↓ ∧␈ε∃')
␈β∂7␈↓ αP␈ε∃ELSE␈↓ β%␈ε∃WRITE('*')
␈β⊃_

␈β↓H␈↓ ↓$␈∧↓H↓$α
u
␈β↓J␈↓ ↓$␈∧↓J↓$Hα␈↓ "␈∧↓J"Hα␈↓ ↔␈∧↓J↔Hα
␈β↓V␈↓ βz␈ε>Desi␈α␈gn␈α∞of␈α∞C␈α↓o␈α␈ndi␈α␈tio␈α␈nal␈α∞C␈α↓o␈α␈mmand␈α␈s
␈β↓\␈↓ K␈ε"95
␈βα⊃␈↓ ↓$␈∧α⊃↓$α
u
␈βαO␈↓ ↓H␈ε2Exercise
␈βα␈␈↓ α␈ε$Prin␈α␈t␈α
an␈α↓o␈α↓t␈α␈her␈α
le␈α␈tter,␈α	perhaps␈↓ ¬1␈ε$o␈α↓r␈↓ ¬p␈ε$o␈α↓r␈↓ ε%␈ε$,␈α	in␈α
a␈αsi␈α␈m␈α↓i␈α␈lar␈α
fashion.
␈ββ␈↓ ¬_␈ε⊗F␈↓ ¬W␈ε⊗N␈↓ ε⊗␈ε⊗R
␈ββ;␈↓ ↓H␈ε2Exercise
␈ββk␈↓ α␈ε$Prin␈α␈t␈α
such␈α
a␈α
le␈α␈tter␈α
i␈α␈n␈αi␈α␈tali␈α␈c␈α
(slan␈α␈ting)␈α
st␈α␈yle.
␈β⊃_

␈β↓H␈↓ ↓$␈∧↓H↓$α
u
␈β↓J␈↓ ↓$␈∧↓J↓$Hα␈↓ α→␈∧↓Jα→Hα␈↓ ↔␈∧↓J↔Hα
␈β↓V␈↓ ∧_␈ε>Av␈α␈o␈α␈idi␈α␈ng␈α∞Redu␈α␈ndant␈α∞E{or␈α␈t␈α∞in␈α∞Prog␈α␈ramm␈α␈ing
␈β↓\␈↓ ↓M␈ε"96
␈βα⊃␈↓ ↓$␈∧α⊃↓$α
u
␈βα]␈↓ ↓H␈ε>Av␈α}oid␈α␈ing␈α∞R␈α␈edun␈α␈da␈α↓n␈α␈t␈α∞E␈α↓{o␈α␈rt␈α∞in␈α∞Pro␈α␈gr␈α␈a␈α↓m␈α␈min␈α␈g.
␈ββ#␈↓ ¬s␈ε+x
␈ββ*␈↓ α␈ε"Suppose␈αw␈α␈e␈αw␈α␈an␈α␈t␈αto␈αcompute␈↓ ¬c␈ε(e␈↓ ε⊃␈ε"appro␈α␈ximately␈αfor␈αa␈αsmall␈αv␈α}alue␈αof␈ε(␈αx␈ε",␈αusing␈αthe
␈ββU␈↓ ↓H␈ε"form␈α␈ula:
␈β∧␈↓ ε≠␈ε%2␈↓ ε|␈ε%3␈↓ π]␈ε%4␈↓ 	≠␈ε%9
␈β∧∩␈↓ ¬3␈ε(x␈↓ επ␈ε(x␈↓ εh␈ε(x␈↓ πI␈ε(x␈↓ 	π␈ε(x
␈β∧"␈↓ ∧≠␈ε+x
␈β∧*␈↓ ∧␈ε(e␈↓ ∧7␈ε6→␈ε"␈α
1␈αλ+␈↓ ¬W␈ε"+␈↓ ε8␈ε"+␈↓ π→␈ε"+␈↓ πy␈ε"+␈↓ λ%␈ε6↓␈αε↓␈αε↓␈↓ λW␈ε"+
␈β∧>␈↓ ¬/␈∧∧>¬/α≤␈↓ επ␈∧∧>επα%␈↓ εh␈∧∧>εhα%␈↓ πI␈∧∧>πIα%␈↓ 	π␈∧∧>	πα%
␈β∧C␈↓ ¬/␈ε"1!␈↓ ε␈ε"2!␈↓ εl␈ε"3!␈↓ πM␈ε"4!␈↓ 	␈ε"9!
␈β¬∃␈↓ ↓H␈ε"The␈α
m␈α↓ost␈α
obvious␈α
meth␈α↓od␈α
uses␈α
an␈α
outer␈αiteration␈α
to␈α
run␈α
through␈α
the␈α
terms␈α
which␈α
are
␈β¬@␈↓ ↓H␈ε"being␈α∞added,␈α∞and␈α∞an␈α∞inner␈α∞iteration␈α
to␈α∞calculate␈α∞the␈α∞factorials.␈α⊗This␈α∞in␈α␈v␈α␈olv␈α␈es␈α
m␈α␈uch
␈β¬k␈↓ ↓H␈ε"w␈α␈asted␈α	e{ort,␈αbecause␈α
when␈α	w␈α␈e␈α
ha␈α␈v␈α␈e␈α
computed␈α
3!␈α∂w␈α␈e␈α
don't␈α
ha␈α␈v␈α␈e␈α
to␈α
start␈α
from␈α	scratch
␈βε⊂␈↓ 
t␈ε%3
␈βε⊗␈↓ ↓H␈ε"to␈α∞compute␈α∞4!;␈α⊂w␈α␈e␈α∞only␈α∂ha␈α␈v␈α␈e␈α∞to␈α∂m␈α␈ultiply␈α∞3!␈α↔by␈α∂4.␈α↔In␈α∞fact,␈α∂once␈α∂w␈α␈e␈α∞ha␈α␈v␈α␈e␈↓ 
`␈ε(x␈↓ ∧␈ε"/3!,␈α∂w␈α␈e
␈βε<␈↓ λ
␈ε%4
␈βεB␈↓ ↓H␈ε"only␈α
ha␈α␈v␈α␈e␈α∞to␈α∞m␈α␈ultiply␈α
by␈ε(␈α∞x␈ε"␈α
and␈α∞divide␈α∞by␈α
4␈α∞to␈α∞get␈↓ πv␈ε(x␈↓ λ≠␈ε"/4!.␈α∃A␈α∞program␈α
based␈α∞on␈α
this
␈βεm␈↓ ↓H␈ε"follo␈α␈ws:
␈βπ4␈↓ αP␈ε∃(declarations)
␈βπ[␈↓ αP␈ε∃BEGIN
␈βλβ␈↓ αP␈ε∃READ(X);
␈βλ+␈↓ αP␈ε∃SUM␈↓ β∀␈ε∃:=␈↓ βG␈ε∃1;
␈βλR␈↓ αP␈ε∃TERM␈↓ β%␈ε∃:=␈↓ βX␈ε∃1;
␈βλz␈↓ αP␈ε∃FOR␈↓ β∀␈ε∃I:=1␈↓ βi␈ε∃TO␈↓ ∧≤␈ε∃9␈↓ ∧>␈ε∃DO
␈β	!␈↓ ββ␈ε∃BEGIN
␈β	I␈↓ ββ␈ε∃TERM␈↓ βX␈ε∃:=␈↓ ∧␈ε∃TERM␈↓ ∧`␈ε∃*␈↓ ¬α␈ε∃X/I;␈↓ ¬W␈ε∃(*␈↓ ε≠␈ε∃X**I/I!␈↓ π#␈ε∃*)
␈β	q␈↓ ββ␈ε∃SUM␈↓ βG␈ε∃:=␈↓ βz␈ε∃SUM␈↓ ∧>␈ε∃+␈↓ ∧`␈ε∃TERM␈↓ ¬F␈ε∃(*␈↓ ¬y␈ε∃SUM␈↓ ε=␈ε∃OF␈↓ εp␈ε∃TERMS␈↓ πV␈ε∃UP␈↓ λ	␈ε∃TO␈↓ λ<␈ε∃DEGREE␈↓ 	3␈ε∃I␈↓ 	U␈ε∃*)
␈β
_␈↓ ββ␈ε∃END;
␈β
@␈↓ αP␈ε∃END.
␈β∂␈↓ α␈ε"The␈α∞general␈α∂idea␈α∞is␈α∂to␈α∞record␈α∞all␈α∂the␈α∞useful␈α∂information␈α∞that␈α∞can␈α∂be␈α∞k␈α␈ept␈α∞from
␈β:␈↓ ↓H␈ε"the␈α⊂part␈α⊂of␈α⊂the␈α⊂computation␈α⊂done␈α⊃so␈α⊂far.␈α≤The␈α⊂v␈α}ariable␈↓ 	4␈ε"h␈α↓olds␈α⊂en␈α↓ough␈α⊂useful
␈β<␈↓ λX␈ε5TERM
␈βf␈↓ ↓H␈ε"information␈α∂that␈α∞w␈α␈e␈α∂can␈α∂get␈α∂the␈α∂new␈α∂summand␈α∂at␈α∞the␈α∂next␈α∂v␈α}alue␈α∂of␈↓ 
C␈ε"with␈α∂just␈α∞a
␈βh␈↓ 
!␈ε5I
␈β⊃␈↓ ↓H␈ε"m␈α␈ultiplication␈αand␈αdivision.
␈βE␈↓ α␈ε"Let's␈αtry␈αdoing␈αthe␈αsame␈αthing␈αwith␈αa␈αm␈α↓ore␈αcomplicated␈αform␈α␈ula,␈αfor␈↓ 
S␈ε(→␈↓ 
i␈ε"/6:
␈β
4␈↓ βE␈ε↓∩␈↓ βu␈ε↓∪
␈β
5␈↓ β←␈ε"1␈↓ ∧G␈ε"1␈↓ ¬I␈ε"1␈↓ π␈ε"1␈ε6␈αλ↓␈ε"␈αλ3␈↓ λ]␈ε"1␈ε6␈αλ↓␈ε"␈αλ3␈ε6␈αλ↓␈ε"␈αλ5
␈β
M␈↓ α←␈ε(a␈↓ αr␈ε(r␈↓ βα␈ε(c␈α↓sin␈↓ ∧∃␈ε"=␈↓ ∧e␈ε"+␈↓ ε≤␈ε"+␈↓ π}␈ε"+␈↓ 
π␈ε"+␈↓ 
3␈ε6↓␈αε↓␈αε↓
␈β
a␈↓ β←␈∧
aβ←α∩␈↓ ∧G␈∧
a∧Gα∩␈↓ ¬∃␈∧
a¬∃α{␈↓ εL␈∧
aεLα↓'␈↓ λ(␈∧
aλ(α↓S
␈β
c␈↓ ¬'␈ε%3␈↓ ε↑␈ε%5␈↓ λ:␈ε%7
␈β
g␈↓ β←␈ε"2␈↓ ∧G␈ε"2␈↓ ¬∃␈ε"2␈↓ ¬@␈ε6↓␈ε"␈αλ2␈ε6␈αλ↓␈ε"␈αλ3␈↓ εL␈ε"2␈↓ εv␈ε6↓␈ε"␈αλ2␈ε6␈αλ↓␈ε"␈αλ4␈ε6␈αλ↓␈ε"␈αλ5␈↓ λ(␈ε"2␈↓ λS␈ε6↓␈ε"␈αλ2␈ε6␈αλ↓␈ε"␈αλ4␈ε6␈αλ↓␈ε"␈αλ6␈ε6␈αλ↓␈ε"␈αλ7
␈β∞S␈↓ ↓H␈ε"where␈α
w␈α␈e␈α
ha␈α␈v␈α␈e␈α
circled␈α
the␈αpart␈α
of␈α
each␈α
summand␈α
that␈αis␈α
useful␈α
in␈α
computing␈α
the␈α
next
␈β∞}␈↓ ↓H␈ε"one␈αto␈αthe␈αrigh␈α␈t.␈α⊂T␈α⎇o␈αcompute␈αthis␈αby␈αhand,␈αw␈α␈e␈αmigh␈α␈t␈αset␈αup␈αthis␈αtable:
␈β⊃_

␈β↓H␈↓ ↓$␈∧↓H↓$α
u
␈β↓J␈↓ ↓$␈∧↓J↓$Hα␈↓ "␈∧↓J"Hα␈↓ ↔␈∧↓J↔Hα
␈β↓V␈↓ β≥␈ε>Av␈α␈o␈α␈idi␈α␈ng␈α∞Redu␈α␈ndant␈α∞E{or␈α␈t␈α∞in␈α∞Prog␈α␈ramm␈α␈ing
␈β↓\␈↓ K␈ε"97
␈βα⊃␈↓ ↓$␈∧α⊃↓$α
u
␈βαN␈↓ βm␈ε"Q␈↓ ¬@␈ε"C␈↓ εd␈ε"S
␈ββ	␈↓ βM␈ε"1␈↓ εD␈ε"1
␈ββ!␈↓ ¬@␈ε"1
␈ββ5␈↓ βM␈∧β5βMα∩␈↓ εD␈∧β5εDα∩
␈ββ;␈↓ βM␈ε"2␈↓ εD␈ε"2
␈ββo␈↓ βk␈ε"1␈↓ εD␈ε"1␈↓ πF␈ε"1
␈β∧π␈↓ ¬@␈ε"3␈↓ εb␈ε"+
␈β∧≠␈↓ βM␈∧∧≠βMαO␈↓ εD␈∧∧≠εDα∩␈↓ π∩␈∧∧≠π∩α{
␈β∧≥␈↓ β←␈ε%3␈↓ π$␈ε%3
␈β∧ ␈↓ βM␈ε"2␈↓ βx␈ε6↓␈ε"␈αλ2␈↓ εD␈ε"2␈↓ π∩␈ε"2␈↓ π<␈ε6↓␈ε"␈αλ2␈ε6␈αλ↓␈ε"␈αλ3
␈β∧T␈↓ βk␈ε"1␈ε6␈αλ↓␈ε"␈αλ3␈↓ εD␈ε"1␈↓ πF␈ε"1␈↓ λ⎇␈ε"1␈ε6␈αλ↓␈ε"␈αλ3
␈β∧l␈↓ ¬@␈ε"5␈↓ εb␈ε"+␈↓ λ_␈ε"+
␈β¬↓␈↓ βM␈∧¬↓βMα{␈↓ εD␈∧¬↓εDα∩␈↓ π∩␈∧¬↓π∩α{␈↓ λH␈∧¬↓λHα↓'
␈β¬β␈↓ β←␈ε%5␈↓ π$␈ε%3␈↓ λZ␈ε%5
␈β¬ε␈↓ βM␈ε"2␈↓ βx␈ε6↓␈ε"␈αλ2␈ε6␈αλ↓␈ε"␈αλ4␈↓ εD␈ε"2␈↓ π∩␈ε"2␈↓ π<␈ε6↓␈ε"␈αλ2␈ε6␈αλ↓␈ε"␈αλ3␈↓ λH␈ε"2␈↓ λs␈ε6↓␈ε"␈αλ2␈ε6␈αλ↓␈ε"␈αλ4␈ε6␈αλ↓␈ε"␈αλ5
␈β¬:␈↓ βk␈ε"1␈ε6␈αλ↓␈ε"␈αλ3␈ε6␈αλ↓␈ε"␈αλ5␈↓ εD␈ε"1␈↓ λ$␈ε"1␈ε6␈αλ↓␈ε"␈αλ3␈ε6␈αλ↓␈ε"␈αλ5
␈β¬R␈↓ ¬@␈ε"7␈↓ εb␈ε"+␈↓ π∞␈ε6↓␈αε↓␈αε↓␈↓ π@␈ε"+
␈β¬f␈↓ βM␈∧¬fβMα↓'␈↓ εD␈∧¬fεDα∩␈↓ πp␈∧¬fπpα↓S
␈β¬h␈↓ β←␈ε%7␈↓ λα␈ε%7
␈β¬l␈↓ βM␈ε"2␈↓ βx␈ε6↓␈ε"␈αλ2␈ε6␈αλ↓␈ε"␈αλ4␈ε6␈αλ↓␈ε"␈αλ6␈↓ εD␈ε"2␈↓ πp␈ε"2␈↓ λ~␈ε6↓␈ε"␈αλ2␈ε6␈αλ↓␈ε"␈αλ4␈ε6␈αλ↓␈ε"␈αλ6␈ε6␈αλ↓␈ε"␈αλ7
␈βε∨␈↓ ¬@␈ε"etc.
␈βπ≤␈↓ α␈ε"In␈α
each␈α
ro␈α␈w␈αa$er␈α
the␈α
|rst,␈α
w␈α␈e␈α
get␈α
the␈αn␈α␈um␈α␈ber␈α
in␈α
column␈ε(␈α
Q␈ε"␈α
from␈α
the␈α
one␈αabo␈α␈v␈α␈e
␈βπG␈↓ ↓H␈ε"it␈αby␈α
m␈α␈ultiplying␈α
by␈↓ ∧∃␈ε(C␈↓ ∧1␈ε"/(4(␈↓ ∧m␈ε(C␈↓ ¬∩␈ε"+␈α	1)),␈α
where␈↓ εh␈ε(C␈↓ π∩␈ε"is␈αthe␈α
n␈α␈um␈α␈ber␈α
in␈α
column␈↓ 
"␈ε(C␈↓ 
K␈ε"on␈α
the␈αline
␈βπs␈↓ ↓H␈ε"abo␈α␈v␈α␈e.␈α≡W␈α⎇e␈α⊂get␈α⊃the␈α⊃n␈α␈um␈α␈ber␈α⊂in␈α⊃column␈↓ εF␈ε(C␈↓ εs␈ε"by␈α⊂adding␈α⊃2␈α⊃to␈α⊂the␈α⊃one␈α⊃abo␈α␈v␈α␈e.␈α≡W␈α⎇e␈α⊂get
␈βλ≡␈↓ ↓H␈ε"the␈α
n␈α␈um␈α␈ber␈α
in␈α
column␈↓ ∧4␈ε(S␈↓ ∧Z␈ε"by␈α
adding␈ε(␈α
Q␈ε"␈α↓/␈↓ ε4␈ε(C␈↓ ε]␈ε"(from␈α
the␈α
same␈α
ro␈α␈w)␈α
to␈α
the␈α
n␈α␈um␈α␈ber␈α
abo␈α␈v␈α␈e
␈βλI␈↓ ↓H␈ε"in␈α∞column␈↓ αu␈ε(S␈↓ β∞␈ε".␈α→The␈α∞arro␈α␈ws␈α∂sh␈α↓o␈α␈w␈α∂where␈α∂the␈α∂information␈α∞comes␈α∂from␈α∂that␈α∂is␈α∂used␈α∞to
␈βλt␈↓ ↓H␈ε"compute␈α∞each␈α
of␈α∞the␈α∞n␈α␈um␈α␈bers.␈α⊗No␈α∞n␈α␈um␈α␈ber␈α
is␈α∞used␈α∞again␈α∞a$er␈α∞the␈α∞n␈α␈um␈α␈ber␈α∞belo␈α␈w␈α
it
␈β	∨␈↓ ↓H␈ε"is␈α∂calculated.␈α→Because␈α∂of␈α∂this,␈α⊂w␈α␈e␈α∂can␈α∂design␈α∂a␈α∂computer␈α∂program␈α∂to␈α∂do␈α∂the␈α∂same
␈β	K␈↓ ↓H␈ε"calculations,␈αusing␈αone␈αv␈α}ariable␈αfor␈αeach␈αcolumn.
␈β
␈↓ αP␈ε∃(declarations)
␈β
3␈↓ αP␈ε∃BEGIN
␈β
[␈↓ αP␈ε∃(initialization)
␈βα␈↓ αP␈ε∃FOR␈↓ β∀␈ε∃I:=1␈↓ βi␈ε∃TO␈↓ ∧≤␈ε∃BIGENOUGH␈↓ ¬F␈ε∃DO
␈β*␈↓ ββ␈ε∃BEGIN
␈βR␈↓ ββ␈ε∃Q␈↓ β%␈ε∃:=␈↓ βX␈ε∃Q*C/(4*(C+1));
␈βy␈↓ ββ␈ε∃C␈↓ β%␈ε∃:=␈↓ βX␈ε∃C+2;
␈β!␈↓ ββ␈ε∃S␈↓ β%␈ε∃:=␈↓ βX␈ε∃S␈↓ βz␈ε∃+␈↓ ∧≤␈ε∃Q/C
␈βH␈↓ ββ␈ε∃END;
␈βp␈↓ αP␈ε∃WRITE('PI/6=',S)
␈β
_␈↓ αP␈ε∃END.
␈β
[␈↓ α␈ε"A␈α
w␈α␈a␈α␈y␈αto␈α
do␈α
this␈α
kind␈α
of␈αproblem␈α
systematically␈α
starts␈α
by␈αdeciding␈α
what␈α
w␈α␈e␈α
need
␈β∞ε␈↓ ↓H␈ε"to␈α∞compute␈α∞each␈α
time␈α∞through␈α∞the␈α∞iteration.␈α⊗F␈α⎇or␈α∞example,␈α∂the␈α∞third␈α
time␈α∞through,
␈β∞1␈↓ ↓H␈ε"w␈α␈e␈αw␈α␈an␈α␈t␈αto␈αend␈αup␈αwith
␈β∂λ␈↓ ∧↓␈ε"1␈↓ ¬β␈ε"1␈↓ ε:␈ε"1␈ε6␈αλ↓␈ε"␈αλ3␈↓ λ≥␈ε"1␈ε6␈αλ↓␈ε"␈αλ3␈ε6␈αλ↓␈ε"␈αλ5
␈β∂ ␈↓ ∧∨␈ε"+␈↓ ¬V␈ε"+␈↓ π8␈ε"+
␈β∂5␈↓ ∧↓␈∧∂5∧↓α∩␈↓ ∧O␈∧∂5∧Oα{␈↓ εε␈∧∂5εεα↓'␈↓ πh␈∧∂5πhα↓S
␈β∂7␈↓ ∧a␈ε%3␈↓ ε_␈ε%5␈↓ πz␈ε%7
␈β∂:␈↓ ∧↓␈ε"2␈↓ ∧O␈ε"2␈↓ ∧z␈ε6↓␈ε"␈αλ2␈ε6␈αλ↓␈ε"␈αλ3␈↓ εε␈ε"2␈↓ ε0␈ε6↓␈ε"␈αλ2␈ε6␈αλ↓␈ε"␈αλ4␈ε6␈αλ↓␈ε"␈αλ5␈↓ πh␈ε"2␈↓ λ∪␈ε6↓␈ε"␈αλ2␈ε6␈αλ↓␈ε"␈αλ4␈ε6␈αλ↓␈ε"␈αλ6␈ε6␈αλ↓␈ε"␈αλ7
␈β⊃∨

␈β↓H␈↓ ↓$␈∧↓H↓$α
u
␈β↓J␈↓ ↓$␈∧↓J↓$Hα␈↓ α→␈∧↓Jα→Hα␈↓ ↔␈∧↓J↔Hα
␈β↓V␈↓ ∧_␈ε>Av␈α␈o␈α␈idi␈α␈ng␈α∞Redu␈α␈ndant␈α∞E{or␈α␈t␈α∞in␈α∞Prog␈α␈ramm␈α␈ing
␈β↓\␈↓ ↓M␈ε"98
␈βα⊃␈↓ ↓$␈∧α⊃↓$α
u
␈βαO␈↓ ↓H␈ε"In␈αλorder␈α	to␈αλget␈α	it␈αλand␈α	to␈αλsa␈α␈v␈α␈e␈α	the␈αλuseful␈α	information␈α	needed␈αλfor␈α	the␈αλnext␈α	stage,␈α	w␈α␈e␈αλm␈α␈ust
␈βαz␈↓ ↓H␈ε"n␈α↓ot␈α∞only␈α∞ha␈α␈v␈α␈e␈α∞the␈α∞sum␈α∞of␈α∞the␈α∞|rst␈α∂three␈α∞terms␈α∞(le$␈α∞from␈α∞the␈α∞second␈α∞time␈α∞through)
␈ββ%␈↓ ↓H␈ε"but␈αalso␈αthe␈αv␈α}alues
␈ββ@␈↓ ε)␈ε"1␈ε6␈αλ↓␈ε"␈αλ3␈ε6␈αλ↓␈ε"␈αλ5
␈ββl␈↓ ε␈∧βlεα↓'
␈ββn␈↓ ε≥␈ε%7
␈ββr␈↓ ε␈ε"2␈↓ ε5␈ε6↓␈ε"␈αλ2␈ε6␈αλ↓␈ε"␈αλ4␈ε6␈αλ↓␈ε"␈αλ6
␈β∧:␈↓ ↓H␈ε"(to␈α
be␈α
sa␈α␈v␈α␈ed␈α
for␈αuse␈α
the␈α
next␈αtime␈α
through)␈α
and␈α
7.␈α⊂W␈α⎇e␈α
w␈α␈an␈α␈t␈α
to␈αgiv␈α␈e␈α
these␈α
three␈α
v␈α}alues
␈β∧e␈↓ ↓H␈ε"to␈αv␈α}ariables,␈α
assuming␈αthat␈α
the␈αcorresponding␈α
v␈α}alues␈αw␈α␈ere␈α
le$␈αin␈αth␈α↓ose␈α
v␈α}ariables␈αthe
␈β¬⊂␈↓ ↓H␈ε"previous␈α∞time␈α∂through␈α∞the␈α∂iteration.␈α↔That␈α∂is,␈α∂assume␈α∂that␈α∞before␈α∂the␈α∞iteration,␈α∂w␈α␈e
␈β¬;␈↓ ↓H␈ε"ha␈α␈v␈α␈e
␈β¬q␈↓ ∧∨␈ε"Q␈↓ ¬?␈ε"C␈↓ πr␈ε"S
␈βε,␈↓ ∧λ␈ε"1␈ε6␈αλ↓␈ε"␈αλ3␈↓ ε'␈ε"1␈↓ π)␈ε"1␈↓ λ`␈ε"1␈ε6␈αλ↓␈ε"␈αλ3
␈βεD␈↓ ¬=␈ε"5␈↓ εE␈ε"+␈↓ π{␈ε"+
␈βεX␈↓ βj␈∧εXβjα{␈↓ ε'␈∧εXε'α∩␈↓ εu␈∧εXεuα{␈↓ λ+␈∧εXλ+α↓'
␈βεZ␈↓ β|␈ε%5␈↓ ππ␈ε%3␈↓ λ=␈ε%5
␈βε]␈↓ βj␈ε"2␈↓ ∧∃␈ε6↓␈ε"␈αλ2␈ε6␈αλ↓␈ε"␈αλ4␈↓ ε'␈ε"2␈↓ εu␈ε"2␈↓ π∨␈ε6↓␈ε"␈αλ2␈ε6␈αλ↓␈ε"␈αλ3␈↓ λ+␈ε"2␈↓ λV␈ε6↓␈ε"␈αλ2␈ε6␈αλ↓␈ε"␈αλ4␈ε6␈αλ↓␈ε"␈αλ5
␈βπ#␈↓ ↓T␈ε"and␈αw␈α␈e␈αw␈α␈an␈α␈t␈αto␈αmak␈α␈e
␈βπp␈↓ ∧	␈ε"Q␈↓ ¬?␈ε"C␈↓ λλ␈ε"S
␈βλ+␈↓ β\␈ε"1␈ε6␈αλ↓␈ε"␈αλ3␈ε6␈αλ↓␈ε"␈αλ5␈↓ ε'␈ε"1␈↓ π)␈ε"1␈↓ λ`␈ε"1␈ε6␈αλ↓␈ε"␈αλ3␈ε6␈αλ↓␈ε"␈αλ5
␈βλC␈↓ ¬=␈ε"7␈↓ εE␈ε"+␈↓ π{␈ε"+
␈βλW␈↓ β>␈∧λWβ>α↓'␈↓ ε'␈∧λWε'α∩␈↓ εu␈∧λWεuα{␈↓ λ+␈∧λWλ+α↓S
␈βλY␈↓ βP␈ε%7␈↓ ππ␈ε%3␈↓ λ=␈ε%7
␈βλ]␈↓ β>␈ε"2␈↓ βi␈ε6↓␈ε"␈αλ2␈ε6␈αλ↓␈ε"␈αλ4␈ε6␈αλ↓␈ε"␈αλ6␈↓ ε'␈ε"2␈↓ εu␈ε"2␈↓ π∨␈ε6↓␈ε"␈αλ2␈ε6␈αλ↓␈ε"␈αλ3␈↓ λ+␈ε"2␈↓ λV␈ε6↓␈ε"␈αλ2␈ε6␈αλ↓␈ε"␈αλ4␈ε6␈αλ↓␈ε"␈αλ6␈ε6␈αλ↓␈ε"␈αλ7
␈β	⊃␈↓ ↓V␈ε"The␈α∞t␈α␈w␈α␈o␈α∞lines␈α∂abo␈α␈v␈α␈e,␈α∞which␈α∞describe␈α∂what␈α∞each␈α∞of␈α∞the␈α∂v␈α}ariables␈α∞h␈α↓olds␈α∞at␈α∞a␈α∞certain
␈β	<␈↓ ↓H␈ε"m␈α↓omen␈α␈t␈α	of␈α
the␈α
computation,␈α
are␈α
called␈ε/␈α
snapsh␈α↓ots␈ε".␈↓ π←␈ε"O$en,␈α
the␈α
design␈α
of␈α
an␈α
iteration␈α	is
␈β	g␈↓ ↓H␈ε"best␈αapproached␈αby␈αasking␈αwhat␈αthe␈αt␈α␈ypical␈αsnapsh␈α↓ot␈αsh␈α↓ould␈αlo␈α↓ok␈αlik␈α␈e,␈αremem␈α␈bering
␈β
∩␈↓ ↓H␈ε"that␈α
each␈α∞one␈α
has␈α∞to␈α
con␈α␈tain␈α∞en␈α↓ough␈α
information␈α∞to␈α
allo␈α␈w␈α∞computing␈α
the␈α∞next␈α
one.
␈β
>␈↓ ↓H␈ε"When␈α⊃w␈α␈e␈α⊃ha␈α␈v␈α␈e␈α⊃designed␈α⊃the␈α⊃t␈α␈ypical␈α⊃one,␈α∩w␈α␈e␈α∩w␈α␈ork␈α⊃back␈α⊃to␈α⊃the␈α⊃|rst␈α⊃one,␈α∩and␈α⊃the
␈β
i␈↓ ↓H␈ε"program␈αn␈α↓o␈α␈w␈αis␈αschematically:
␈β$␈↓ ↓{␈ε∃Assign␈↓ αr␈ε∃the␈↓ β6␈ε∃variables␈↓ ∧`␈ε∃the␈↓ ¬$␈ε∃values␈↓ ε≠␈ε∃they␈↓ εp␈ε∃need␈↓ πE␈ε∃for␈↓ λ	␈ε∃the␈↓ λM␈ε∃first␈↓ 	3␈ε∃snapshot;
␈βL␈↓ ↓{␈ε∃FOR␈↓ α?␈ε∃I:=␈↓ ββ␈ε∃2␈↓ β%␈ε∃TO␈↓ βX␈ε∃N␈↓ βz␈ε∃DO
␈βs␈↓ α.␈ε∃From␈↓ ββ␈ε∃the␈↓ βG␈ε∃values␈↓ ∧>␈ε∃in␈↓ ∧q␈ε∃snapshot␈↓ ε
␈ε∃I-1,␈↓ ε←␈ε∃compute␈↓ πg␈ε∃and␈↓ λ+␈ε∃assign␈↓ 	"␈ε∃the␈↓ 	f␈ε∃values
␈β≠␈↓ α.␈ε∃the␈↓ αr␈ε∃variables␈↓ ∧≤␈ε∃require␈↓ ¬$␈ε∃in␈↓ ¬W␈ε∃snapshot␈↓ εp␈ε∃I.
␈βV␈↓ ↓H␈ε"An␈α↓other␈αsnapsh␈α↓ot␈αexample:␈αlo␈α↓ok␈αat␈αthe␈αseries␈αof␈αn␈α␈um␈α␈bers
␈β
_␈↓ ∧Y␈ε"0,␈αε0,␈αε0,␈αε1,␈αε1,␈αε2,␈αε3,␈αε6,␈αε10,␈αε18,␈αε31,␈αε55,␈↓ λ9␈ε".␈αε.␈αε.
␈β
[␈↓ ↓H␈ε"where␈αeach␈αn␈α␈um␈α␈ber␈αa$er␈αthe␈αfourth␈αis␈αthe␈αsum␈αof␈αthe␈αn␈α␈um␈α␈bers␈αfour␈αplaces␈αto␈αits␈αle$,
␈β∞ε␈↓ ↓H␈ε"t␈α␈w␈α␈o␈α∞places␈α∂to␈α∞its␈α∂le$,␈α∂and␈α∂one␈α∞place␈α∂to␈α∞its␈α∂le$;␈α⊂for␈α∞example,␈α∂2␈α
+␈α
6␈α
+␈α	10␈α∂=␈α∞18.␈α↔A
␈β∞1␈↓ ↓H␈ε"snapsh␈α↓ot␈αthat␈αw␈α␈orks␈αin␈αcomputing␈αthis␈αseries␈αof␈αn␈α␈um␈α␈bers,␈αconsists␈αof␈α|v␈α␈e␈αconsecutiv␈α␈e
␈β∞\␈↓ ↓H␈ε"n␈α␈um␈α␈bers,␈α
of␈α
which␈α
four␈α	are␈α
le$o␈α␈v␈α␈ers␈α
from␈α
the␈α
previous␈α
stage,␈α
and␈α
the␈α
|$h␈α
is␈α	obtained
␈β∂λ␈↓ ↓H␈ε"by␈αadding␈αthe␈α|rst,␈α
second,␈αand␈αfourth:␈α
from␈ε(␈αA␈ε"␈α
=␈α1,␈↓ λ␈ε(B␈↓ λ2␈ε"=␈α
2,␈↓ 	α␈ε(C␈↓ 	)␈ε"=␈α
3,␈ε(␈αεD␈ε"␈α=␈α
6,␈↓ 
q␈ε(E␈↓ _␈ε"=␈α
10,
␈β∂3␈↓ ↓H␈ε"w␈α␈e␈αw␈α␈an␈α␈t␈αto␈αget␈ε(␈αA␈ε"␈α
=␈α
2,␈↓ ∧1␈ε(B␈↓ ∧V␈ε"=␈α
3,␈↓ ¬&␈ε(C␈↓ ¬M␈ε"=␈α
6,␈ε(␈αεD␈ε"␈α
=␈α
10,␈↓ π&␈ε(E␈↓ πL␈ε"=␈α
18,␈αwhich␈αcan␈αbe␈αdone␈αby
␈β⊃∨

␈β↓H␈↓ ↓$␈∧↓H↓$α
u
␈β↓J␈↓ ↓$␈∧↓J↓$Hα␈↓ "␈∧↓J"Hα␈↓ ↔␈∧↓J↔Hα
␈β↓V␈↓ β≥␈ε>Av␈α␈o␈α␈idi␈α␈ng␈α∞Redu␈α␈ndant␈α∞E{or␈α␈t␈α∞in␈α∞Prog␈α␈ramm␈α␈ing
␈β↓\␈↓ K␈ε"99
␈βα⊃␈↓ ↓$␈∧α⊃↓$α
u
␈βαN␈↓ β∀␈ε∃A␈↓ β6␈ε∃:=␈↓ βi␈ε∃B␈↓ ∧␈ε∃;
␈βαu␈↓ β∀␈ε∃B␈↓ β6␈ε∃:=␈↓ βi␈ε∃C␈↓ ∧␈ε∃;
␈ββ≥␈↓ β∀␈ε∃C␈↓ β6␈ε∃:=␈↓ βi␈ε∃D␈↓ ∧␈ε∃;
␈ββD␈↓ β∀␈ε∃D␈↓ β6␈ε∃:=␈↓ βi␈ε∃E␈↓ ∧␈ε∃;
␈ββl␈↓ β∀␈ε∃E␈↓ β6␈ε∃:=␈↓ βi␈ε∃A+C+D
␈β∧)␈↓ ↓H␈ε"A␈αcomplete␈αprogram␈αis␈αthen
␈β∧f␈↓ αP␈ε∃(declarations)
␈β¬∞␈↓ αP␈ε∃BEGIN
␈β¬6␈↓ αP␈ε∃A:=0;B:=0;C:=0;D:=1;E:=1;
␈β¬]␈↓ αP␈ε∃WRITE(A,B,C,D,E);
␈βε¬␈↓ αP␈ε∃FOR␈↓ β∀␈ε∃I:=6␈↓ βi␈ε∃TO␈↓ ∧≤␈ε∃BIGENOUGH␈↓ ¬F␈ε∃DO
␈βε,␈↓ ββ␈ε∃BEGIN
␈βεT␈↓ ββ␈ε∃A:=B;␈↓ βi␈ε∃B:=C;␈↓ ∧O␈ε∃C:=D;␈↓ ¬5␈ε∃D:=E;
␈βε|␈↓ ββ␈ε∃E␈↓ β%␈ε∃:=␈↓ βX␈ε∃A+C+D;
␈βπ#␈↓ ββ␈ε∃WRITELN(E)
␈βπK␈↓ ββ␈ε∃END
␈βπr␈↓ αP␈ε∃END.
␈β⊃_

␈β↓H␈↓ ↓$␈∧↓H↓$α
u
␈β↓J␈↓ ↓$␈∧↓J↓$Hα␈↓ α→␈∧↓Jα→Hα␈↓ ↔␈∧↓J↔Hα
␈β↓V␈↓ ε↓␈ε>Sampl␈α␈e␈α∂Pro␈α␈grams
␈β↓\␈↓ ↓D␈ε"100
␈βα⊃␈↓ ↓$␈∧α⊃↓$α
u
␈βα[␈↓ ↓H␈ε>Samp␈α␈le␈α∂Pro␈α␈gr␈α␈a␈α↓m␈α␈s.
␈ββX␈↓ ↓H␈ε∃(*␈↓ ↓{␈ε∃CONVERSION␈↓ β6␈ε∃FROM␈↓ ∧␈ε∃FAHRENHEIT␈↓ ¬F␈ε∃TO␈↓ ¬y␈ε∃CELSIUS␈↓ π∩␈ε∃*)
␈β∧␈↓ ↓H␈ε∃(*␈↓ ↓{␈ε∃NOTE␈↓ αP␈ε∃THAT␈↓ β%␈ε∃YOU␈↓ βi␈ε∃HAVE␈↓ ∧>␈ε∃TO␈↓ ∧q␈ε∃PUT␈↓ ¬5␈ε∃AN␈↓ ¬h␈ε∃EXTRA␈↓ εN␈ε∃SPACE␈↓ π4␈ε∃BETWEEN␈↓ λ<␈ε∃THE␈↓ 	␈ε∃TWO␈↓ 	D␈ε∃COLUMNS␈↓ 
L␈ε∃TO␈↓ ⊂␈ε∃*)
␈β∧'␈↓ ↓H␈ε∃(*␈↓ ↓{␈ε∃PREVENT␈↓ ββ␈ε∃THEM␈↓ βX␈ε∃FROM␈↓ ∧-␈ε∃RUNNING␈↓ ¬5␈ε∃TOGETHER.␈↓ εp␈ε∃*)
␈β∧w␈↓ ↓H␈ε∃PROGRAM␈↓ αP␈ε∃TEMP␈↓ β%␈ε∃(OUTPUT);
␈β¬≡␈↓ ↓H␈ε∃VAR␈↓ α␈ε∃FAHR␈↓ αa␈ε∃:␈↓ ββ␈ε∃INTEGER;
␈β¬F␈↓ ↓H␈ε∃BEGIN
␈β¬m␈↓ ↓H␈ε∃FOR␈↓ α␈ε∃FAHR␈↓ αa␈ε∃:=␈↓ β%␈ε∃-␈↓ βG␈ε∃20␈↓ βz␈ε∃TO␈↓ ∧-␈ε∃100␈↓ ∧q␈ε∃DO
␈βε∃␈↓ α␈ε∃WRITELN␈↓ β∀␈ε∃(FAHR,␈↓ ∧␈ε∃'␈↓ ∧-␈ε∃',␈↓ ∧`␈ε∃(FAHR␈↓ ¬F␈ε∃-␈↓ ¬h␈ε∃32)*5/9)
␈βε=␈↓ ↓H␈ε∃END.
␈βπ
␈↓ ↓H␈∧π
↓Hα
-
␈βπ∂␈↓ ↓H␈∧π∂↓Hλα␈↓ s␈∧π∂sλα
␈βπ⊗␈↓ ↓H␈∧π⊗↓Hα
-
␈βπt␈↓ αa␈ε∃-20␈↓ β%␈ε∃-2.888888895E+01
␈βλ≤␈↓ αa␈ε∃-19␈↓ β%␈ε∃-2.833333313E+01
␈βλC␈↓ αa␈ε∃-18␈↓ β%␈ε∃-2.777777761E+01
␈βλk␈↓ αa␈ε∃-17␈↓ β%␈ε∃-2.722222238E+01
␈β	∪␈↓ αa␈ε∃-16␈↓ β6␈ε∃2.666666686E+01
␈β	b␈↓ ββ␈ε∃.␈↓ ∧≤␈ε∃.
␈β
	␈↓ ββ␈ε∃.␈↓ ∧≤␈ε∃.
␈β
1␈↓ ββ␈ε∃.␈↓ ∧≤␈ε∃.
␈β␈↓ αr␈ε∃96␈↓ β6␈ε∃3.555555522E+01
␈β(␈↓ αr␈ε∃97␈↓ β6␈ε∃3.611111104E+01
␈βO␈↓ αr␈ε∃98␈↓ β6␈ε∃3.666666656E+01
␈βw␈↓ αr␈ε∃99␈↓ β6␈ε∃3.722222238E+01
␈β∨␈↓ αa␈ε∃100␈↓ β6␈ε∃3.777777761E+01
␈β
↓␈↓ ↓H␈∧
↓↓Hα
-
␈β
β␈↓ ↓H␈∧
β↓Hλα␈↓ s␈∧
βsλα
␈β
␈↓ ↓H␈∧
↓Hα
-
␈β⊃_

␈β↓H␈↓ ↓$␈∧↓H↓$α
u
␈β↓J␈↓ ↓$␈∧↓J↓$Hα␈↓ "␈∧↓J"Hα␈↓ ↔␈∧↓J↔Hα
␈β↓V␈↓ ¬ε␈ε>Sampl␈α␈e␈α∂Pro␈α␈grams
␈β↓\␈↓ B␈ε"101
␈βα⊃␈↓ ↓$␈∧α⊃↓$α
u
␈βαO␈↓ ↓H␈ε2Sample␈αProgram
␈ββ\␈↓ ↓H␈ε∃(*␈↓ ↓{␈ε∃CONVERSION␈↓ β6␈ε∃FROM␈↓ ∧␈ε∃FAHRENHEIT␈↓ ¬F␈ε∃TO␈↓ ¬y␈ε∃CELSIUS.␈↓ π∩␈ε∃*)
␈β∧β␈↓ ↓H␈ε∃(*␈↓ ↓{␈ε∃GOING␈↓ αa␈ε∃DOWN␈↓ β6␈ε∃INSTEAD␈↓ ∧>␈ε∃OF␈↓ ∧q␈ε∃UP.␈↓ ¬5␈ε∃*)
␈β∧+␈↓ ↓H␈ε∃PROGRAM␈↓ αP␈ε∃TEMP␈↓ β%␈ε∃(␈↓ βG␈ε∃OUTPUT␈↓ ∧>␈ε∃);
␈β∧R␈↓ ↓H␈ε∃VAR␈↓ αP␈ε∃FAHR␈↓ β%␈ε∃:␈↓ βG␈ε∃INTEGER;
␈β∧z␈↓ ↓H␈ε∃BEGIN
␈β¬"␈↓ ↓H␈ε∃FOR␈↓ α␈ε∃FAHR␈↓ αa␈ε∃:=␈↓ β∀␈ε∃100␈↓ βX␈ε∃DOWNTO␈↓ ∧`␈ε∃-␈↓ ¬α␈ε∃20␈↓ ¬5␈ε∃DO
␈β¬I␈↓ α␈ε∃WRITELN␈↓ β∀␈ε∃(FAHR␈↓ βz␈ε∃,␈↓ ∧≤␈ε∃'␈↓ ∧>␈ε∃'␈↓ ∧`␈ε∃,␈↓ ¬α␈ε∃(FAHR␈↓ ¬h␈ε∃-␈↓ ε
␈ε∃32)*5/9␈↓ π∩␈ε∃)
␈β¬q␈↓ ↓H␈ε∃END.
␈βεi␈↓ ↓H␈∧εi↓Hα
-
␈βεk␈↓ ↓H␈∧εk↓Hλα␈↓ s␈∧εksλα
␈βεr␈↓ ↓H␈∧εr↓Hα
-
␈βπx␈↓ αa␈ε∃100␈↓ βG␈ε∃3.777777761E+01
␈βλ∨␈↓ αr␈ε∃99␈↓ βG␈ε∃3.722222238E+01
␈βλG␈↓ αr␈ε∃98␈↓ βG␈ε∃3.666666656E+01
␈βλn␈↓ αr␈ε∃97␈↓ βG␈ε∃3.611111104E+01
␈β	⊗␈↓ αr␈ε∃96␈↓ βG␈ε∃3.555555522E+01
␈β	e␈↓ ββ␈ε∃.␈↓ ∧-␈ε∃.
␈β

␈↓ ββ␈ε∃.␈↓ ∧-␈ε∃.
␈β
4␈↓ ββ␈ε∃.␈↓ ∧-␈ε∃.
␈β∧␈↓ αa␈ε∃-16␈↓ β6␈ε∃-2.666666686E+01
␈β+␈↓ αa␈ε∃-17␈↓ β6␈ε∃-2.722222238E+01
␈βS␈↓ αa␈ε∃-18␈↓ β6␈ε∃-2.777777761E+01
␈βz␈↓ αa␈ε∃-19␈↓ β6␈ε∃-2.833333313E+01
␈β"␈↓ αa␈ε∃-20␈↓ β6␈ε∃-2.888888895E+01
␈β]␈↓ ↓H␈∧]↓Hα
-
␈β←␈↓ ↓H␈∧←↓Hλα␈↓ s␈∧←sλα
␈βf␈↓ ↓H␈∧f↓Hα
-
␈β⊃_

␈β↓H␈↓ ↓$␈∧↓H↓$α
u
␈β↓J␈↓ ↓$␈∧↓J↓$Hα␈↓ α→␈∧↓Jα→Hα␈↓ ↔␈∧↓J↔Hα
␈β↓V␈↓ ε↓␈ε>Sampl␈α␈e␈α∂Pro␈α␈grams
␈β↓\␈↓ ↓D␈ε"102
␈βα⊃␈↓ ↓$␈∧α⊃↓$α
u
␈βαO␈↓ ↓H␈ε2Sample␈αProgram
␈ββ\␈↓ ↓H␈ε∃(*␈↓ ↓{␈ε∃CONVERSION␈↓ β6␈ε∃FROM␈↓ ∧␈ε∃FAHRENHEIT␈↓ ¬F␈ε∃TO␈↓ ¬y␈ε∃CELSIUS␈↓ π↓␈ε∃*)
␈β∧β␈↓ ↓H␈ε∃(*␈↓ αP␈ε∃GOING␈↓ β6␈ε∃UP␈↓ βi␈ε∃IN␈↓ ∧≤␈ε∃STEPS␈↓ ¬α␈ε∃OF␈↓ ¬5␈ε∃5␈↓ ¬W␈ε∃INSTEAD␈↓ ε←␈ε∃OF␈↓ π∩␈ε∃STEPS␈↓ πx␈ε∃OF␈↓ λ+␈ε∃1.␈↓ λ↑␈ε∃*)
␈β∧R␈↓ ↓H␈ε∃PROGRAM␈↓ αP␈ε∃TEMP␈↓ β%␈ε∃(OUTPUT);
␈β∧z␈↓ ↓H␈ε∃VAR␈↓ α≥␈ε∃FAHR,␈↓ ββ␈ε∃FOVER5␈↓ βz␈ε∃:␈↓ ∧≤␈ε∃INTEGER;
␈β¬"␈↓ ↓H␈ε∃BEGIN
␈β¬I␈↓ ↓{␈ε∃FOR␈↓ α?␈ε∃FOVER5␈↓ β6␈ε∃:=␈↓ βz␈ε∃-␈↓ ∧≤␈ε∃4␈↓ ∧>␈ε∃TO␈↓ ∧q␈ε∃20␈↓ ¬$␈ε∃DO
␈β¬q␈↓ α.␈ε∃WRITELN␈↓ β6␈ε∃(5*FOVER5,␈↓ ∧q␈ε∃'␈↓ ¬∪␈ε∃',␈↓ ¬F␈ε∃(5*FOVER5␈↓ εp␈ε∃-␈↓ π∩␈ε∃32)*5/9);
␈βε_␈↓ ↓H␈ε∃END.
␈βεi␈↓ ↓H␈∧εi↓Hα
-
␈βεk␈↓ ↓H␈∧εk↓Hλα␈↓ s␈∧εksλα
␈βεr␈↓ ↓H␈∧εr↓Hα
-
␈βπP␈↓ αa␈ε∃-20␈↓ β%␈ε∃-2.888888895E+01
␈βπx␈↓ αa␈ε∃-15␈↓ β%␈ε∃-2.611111104E+01
␈βλ∨␈↓ αa␈ε∃-10␈↓ β%␈ε∃-2.333333313E+01
␈βλG␈↓ αr␈ε∃-5␈↓ β%␈ε∃-2.055555552E+01
␈βλn␈↓ ββ␈ε∃0␈↓ β%␈ε∃-1.777777761E+01
␈β	>␈↓ ββ␈ε∃.␈↓ ∧≤␈ε∃.
␈β	e␈↓ ββ␈ε∃.␈↓ ∧≤␈ε∃.
␈β

␈↓ ββ␈ε∃.␈↓ ∧≤␈ε∃.
␈β
\␈↓ αr␈ε∃80␈↓ β6␈ε∃2.666666686E+01
␈β∧␈↓ αr␈ε∃85␈↓ β6␈ε∃2.944444447E+01
␈β+␈↓ αr␈ε∃90␈↓ β6␈ε∃3.222222238E+01
␈βS␈↓ αr␈ε∃95␈↓ β6␈ε∃3.500000000E+01
␈βz␈↓ αa␈ε∃100␈↓ β6␈ε∃3.777777761E+01
␈β]␈↓ ↓H␈∧]↓Hα
-
␈β←␈↓ ↓H␈∧←↓Hλα␈↓ s␈∧←sλα
␈βf␈↓ ↓H␈∧f↓Hα
-
␈β⊃_

␈β↓H␈↓ ↓$␈∧↓H↓$α
u
␈β↓J␈↓ ↓$␈∧↓J↓$Hα␈↓ "␈∧↓J"Hα␈↓ ↔␈∧↓J↔Hα
␈β↓V␈↓ ¬ε␈ε>Sampl␈α␈e␈α∂Pro␈α␈grams
␈β↓\␈↓ B␈ε"103
␈βα⊃␈↓ ↓$␈∧α⊃↓$α
u
␈βαO␈↓ ↓H␈ε2Sample␈αProgram
␈βαz␈↓ α␈ε"Computing␈αthe␈αexponen␈α␈tial␈αfunction␈αby␈αits␈αT␈α⎇a␈α␈ylor␈αexpansion.
␈ββ8␈↓ ↓H␈ε∃PROGRAM␈↓ αP␈ε∃EXP(INPUT*␈↓ ∧␈ε∃,␈↓ ∧-␈ε∃OUTPUT␈↓ ¬$␈ε∃)␈↓ ¬F␈ε∃;
␈ββ←␈↓ ↓H␈ε∃VAR␈↓ αP␈ε∃I␈↓ ∧O␈ε∃:␈↓ ∧q␈ε∃INTEGER␈↓ ¬y␈ε∃;
␈β∧π␈↓ αP␈ε∃X␈↓ αr␈ε∃,␈↓ εN␈ε∃(*␈↓ π↓␈ε∃INPUT␈↓ πg␈ε∃VALUE␈↓ λM␈ε∃*)
␈β∧.␈↓ αP␈ε∃NEXT␈↓ β%␈ε∃,␈↓ εN␈ε∃(*␈↓ π↓␈ε∃ONE␈↓ πE␈ε∃TERM␈↓ λ~␈ε∃IN␈↓ λM␈ε∃SERIES␈↓ 	D␈ε∃*)
␈β∧V␈↓ αP␈ε∃SUM␈↓ ∧O␈ε∃:␈↓ ∧q␈ε∃REAL␈↓ ¬F␈ε∃;␈↓ εN␈ε∃(*␈↓ π↓␈ε∃EXP(X)␈↓ πx␈ε∃*)
␈β∧}␈↓ ↓H␈ε∃BEGIN
␈β¬%␈↓ ↓H␈ε∃(*␈↓ ↓{␈ε∃INPUT␈↓ αa␈ε∃AND␈↓ β%␈ε∃INITIALIZATION␈↓ ¬$␈ε∃*)
␈β¬M␈↓ ↓H␈ε∃READ␈↓ α≥␈ε∃(␈↓ α?␈ε∃X␈↓ αa␈ε∃)␈↓ ββ␈ε∃;
␈β¬t␈↓ ↓H␈ε∃SUM␈↓ α␈ε∃:=␈↓ α?␈ε∃1.0␈↓ ββ␈ε∃;
␈βε≤␈↓ ↓H␈ε∃NEXT␈↓ α≥␈ε∃:=␈↓ αP␈ε∃1.0␈↓ β∀␈ε∃;
␈βεD␈↓ ↓H␈ε∃(*␈↓ ↓{␈ε∃SUMMING␈↓ ββ␈ε∃THE␈↓ βG␈ε∃SERIES␈↓ ∧>␈ε∃*)
␈βεk␈↓ ↓H␈ε∃FOR␈↓ α␈ε∃I␈↓ α.␈ε∃:=␈↓ αa␈ε∃1␈↓ ββ␈ε∃TO␈↓ β6␈ε∃12␈↓ βi␈ε∃DO
␈βπ∪␈↓ α␈ε∃BEGIN
␈βπ:␈↓ α␈ε∃NEXT␈↓ αa␈ε∃:=␈↓ β∀␈ε∃NEXT*X/I␈↓ ∧-␈ε∃;
␈βπb␈↓ α␈ε∃SUM␈↓ αP␈ε∃:=␈↓ ββ␈ε∃SUM␈↓ βG␈ε∃+␈↓ βi␈ε∃NEXT
␈βλ
␈↓ α␈ε∃END␈↓ αP␈ε∃;
␈βλ1␈↓ ↓H␈ε∃(*␈↓ ↓{␈ε∃OUTPUT␈↓ αr␈ε∃*)
␈βλY␈↓ ↓H␈ε∃WRITELN␈↓ αP␈ε∃(␈↓ αr␈ε∃'␈↓ β∀␈ε∃X␈↓ ∧`␈ε∃=␈↓ ¬α␈ε∃'␈↓ ¬$␈ε∃,␈↓ ¬F␈ε∃X␈↓ ¬h␈ε∃)␈↓ ε
␈ε∃;
␈β	␈↓ ↓H␈ε∃WRITELN␈↓ αP␈ε∃(␈↓ αr␈ε∃'␈↓ β∀␈ε∃EXP(X)␈↓ ∧`␈ε∃=␈↓ ¬α␈ε∃'␈↓ ¬$␈ε∃,␈↓ ¬F␈ε∃SUM␈↓ ε
␈ε∃)
␈β	(␈↓ ↓H␈ε∃END.
␈β
 ␈↓ ↓H␈∧
 ↓Hα
-
␈β
"␈↓ ↓H␈∧
"↓Hλα␈↓ s␈∧
"sλα
␈β
)␈↓ ↓H␈∧
)↓Hα
-
␈β
`␈↓ α.␈ε∃X␈↓ βi␈ε∃=␈↓ ∧-␈ε∃1.000000000
␈βπ␈↓ α.␈ε∃EXP(X)␈↓ βi␈ε∃=␈↓ ∧-␈ε∃2.718281775
␈βB␈↓ ↓H␈∧B↓Hα
-
␈βD␈↓ ↓H␈∧D↓Hλα␈↓ s␈∧Dsλα
␈βK␈↓ ↓H␈∧K↓Hα
-
␈β⊃_

␈β↓H␈↓ ↓$␈∧↓H↓$α
u
␈β↓J␈↓ ↓$␈∧↓J↓$Hα␈↓ α→␈∧↓Jα→Hα␈↓ ↔␈∧↓J↔Hα
␈β↓V␈↓ ε↓␈ε>Sampl␈α␈e␈α∂Pro␈α␈grams
␈β↓\␈↓ ↓D␈ε"104
␈βα⊃␈↓ ↓$␈∧α⊃↓$α
u
␈βαO␈↓ ↓H␈ε2Sample␈αProgram
␈βββ␈↓ α␈ε"W␈α⎇rite␈αa␈αP␈α⎇ASCAL␈αprogram␈αthat␈αappro␈α␈ximates␈αthe␈αv␈α}alue␈αof
␈ββf␈↓ επ␈ε↓Z
␈ββl␈↓ ε+␈ε%1
␈β∧¬␈↓ ε␈␈ε'2
␈β∧
␈↓ εQ␈ε9␈␈↓ εn␈ε+x
␈β∧∩␈↓ εB␈ε(e␈↓ π∂␈ε(dx
␈β∧5␈↓ ε≠␈ε%0
␈β¬⊃␈↓ ↓H␈ε"using␈αλtrapezoidal␈αλappro␈α␈ximation.␈α∞T␈α⎇o␈αλappro␈α␈ximate␈αλthe␈αλarea␈αλunder␈αλa␈αλcurv␈α␈e␈αλby␈αλtrapezoids,
␈β¬<␈↓ ↓H␈ε"divide␈α∩the␈α∩in␈α␈terv␈α}al␈α∩in␈α␈to␈α∩equal-width␈α∪subin␈α␈terv␈α}als,␈α∪ev␈α}aluate␈α∪the␈α∩function␈α∩to␈α∩be␈α∩in-
␈β¬g␈↓ ↓H␈ε"tegrated␈α∩at␈α∪the␈α∩endpoin␈α␈ts␈α∪of␈α∩these␈α∪subin␈α␈terv␈α}als,␈α∀and␈α∩then␈α∪\connect␈α∩the␈α∪dots"␈α∩to
␈βε∩␈↓ ↓H␈ε"get␈α⊃trapezoids.␈α The␈α⊃v␈α}alue␈α⊃of␈α⊃the␈α∩in␈α␈tegral␈α⊃o␈α␈v␈α␈er␈α⊃the␈α⊃in␈α␈terv␈α}al␈α⊃[0,1]␈α∩can␈α⊃then␈α⊃be␈α⊃ap-
␈βε>␈↓ ↓H␈ε"pro␈α␈ximated␈α
by␈α∞the␈α∞sum␈α
of␈α∞the␈α∞areas␈α∞of␈α
these␈α∞trapezoids.␈ε/␈α∃(See␈α∞picture␈α
belo␈α␈w.)␈ε"␈α∃Y␈α⎇our
␈βεi␈↓ ↓H␈ε"output␈αsh␈α↓ould␈αbe␈αa␈αtable␈αlik␈α␈e␈αthe␈αfollo␈α␈wing:
␈βπ`␈↓ ↓{␈ε1n␈α␈umbe␈α␈r␈α
o␈α↓f␈↓ ¬1␈ε1area␈↓ λ↔␈ε1chang␈α↓e␈α	in␈α
approxi␈α␈m␈α↓ati␈α␈o␈α↓n
␈βλ∧␈↓ ↓e␈ε1subi␈α␈n␈α␈terv␈α}als
␈βλ(␈↓ β!␈ε1<approxi␈α␈m␈α↓ated␈α
area␈α
with␈α
1␈α
trapezoi␈α␈d>␈↓ λ↔␈ε1<di␈α␈{erenc␈α␈e␈α
from␈αprevi␈α␈ous␈αare␈α␈a␈α↓>
␈βλ)␈↓ αt␈ε⊗1
␈βλL␈↓ β!␈ε1<approxi␈α␈m␈α↓ated␈α
area␈α
with␈α
2␈α
trapezoi␈α␈ds>␈↓ λ↔␈ε1<di␈α␈{erenc␈α␈e␈α
from␈αprevi␈α␈ous␈αare␈α␈a␈α↓>
␈βλM␈↓ αt␈ε⊗2
␈βλp␈↓ β!␈ε1<approxi␈α␈m␈α↓ated␈α
area␈α
with␈α
4␈α
trapezoi␈α␈ds>␈↓ λ↔␈ε1<di␈α␈{erenc␈α␈e␈α
from␈αprevi␈α␈ous␈αare␈α␈a␈α↓>
␈βλq␈↓ αt␈ε⊗4
␈β	∀␈↓ β!␈ε1<approxi␈α␈m␈α↓ated␈α
area␈α
with␈α
8␈α
trapezoi␈α␈ds>␈↓ λ↔␈ε1<di␈α␈{erenc␈α␈e␈α
from␈αprevi␈α␈ous␈αare␈α␈a␈α↓>
␈β	∃␈↓ αt␈ε⊗8
␈β	8␈↓ β!␈ε1<approxi␈α␈m␈α↓ated␈α
area␈α
with␈α
16␈αt␈α␈ra␈α↓pe␈α␈zoids>␈↓ λ↔␈ε1<di␈α␈{erenc␈α␈e␈α
from␈αprevi␈α␈ous␈αare␈α␈a␈α↓>
␈β	9␈↓ αe␈ε⊗16
␈β	[␈↓ αe␈ε⊗.␈↓ ¬>␈ε⊗.␈↓ 	h␈ε⊗.
␈β	j␈↓ αe␈ε⊗.␈↓ ¬>␈ε⊗.␈↓ 	h␈ε⊗.
␈β	x␈↓ αe␈ε⊗.␈↓ ¬>␈ε⊗.␈↓ 	h␈ε⊗.
␈β
≠␈↓ β!␈ε1<approxi␈α␈m␈α↓ated␈α
area␈α
with␈α
409␈α↓6␈α
trapez␈α␈o␈α↓i␈α␈ds>␈↓ λ↔␈ε1<di␈α␈{erenc␈α␈e␈α
from␈αprevi␈α␈ous␈αare␈α␈a␈α↓>
␈β
≤␈↓ αF␈ε⊗4␈α↓096
␈β≥␈↓ ∧>␈ε%12
␈β#␈↓ α␈ε"Note␈α	that␈α	4096␈α
=␈↓ ∧,␈ε"2␈↓ ∧↑␈ε",␈α	and␈α	the␈α	n␈α␈um␈α␈ber␈α	of␈α	subin␈α␈terv␈α}ais␈α	doubles␈α	for␈α	each␈αλsuccessiv␈α␈e
␈βN␈↓ ↓H␈ε"appro␈α␈ximation.␈α∂In␈αthe␈α
column␈α
labelled␈ε/␈α<di{erence␈α
from␈αprevious␈α
area>␈ε",␈αy␈α␈ou␈α
sh␈α↓ould
␈βz␈↓ ↓H␈ε"prin␈α␈t␈α∂h␈α↓o␈α␈w␈α∞m␈α␈uch␈α∂the␈α∂appro␈α␈ximation␈α∂changed␈α∂with␈α∂the␈α∂larger␈α∂n␈α␈um␈α␈ber␈α∂of␈α∞trapezoids.
␈β%␈↓ ↓H␈ε"F␈α⎇or␈α⊂instance,␈α∩on␈α⊃line␈α⊂4␈α⊃of␈α⊂the␈α⊃output␈α⊃(abo␈α␈v␈α␈e,␈α⊃where␈α⊃n␈α␈um␈α␈ber␈α⊃of␈α⊂subin␈α␈terv␈α}als␈α⊃is␈α⊂8),
␈βP␈↓ ↓H␈ε"the␈α∂slot␈ε/␈α∂<di{erence␈α∂from␈α∂previous␈α∂area>␈ε"␈α∂w␈α␈ould␈α∂be␈α∂equal␈α∂to␈ε/␈α∂<appro␈α␈ximated␈α∂area
␈β{␈↓ ↓H␈ε/with␈α
8␈α∞trapezoids>␈ε"␈α
min␈α␈us␈ε/␈α
<appro␈α␈ximated␈α∞area␈α
with␈α∞4␈α
trapezoids>␈ε".␈α∃Note␈α
there␈α
is
␈β
&␈↓ ↓H␈ε"a␈α
problem␈αfor␈α
the␈α
|rst␈α
line␈α
of␈α
output,␈α
since␈α
there␈α
is␈α
n␈α↓o␈α
previous␈α
area␈α
from␈α
which␈αto
␈β
R␈↓ ↓H␈ε"compute␈α
a␈α∞di{erence:␈α∂so␈α∞assume␈α
the␈α∞previous␈α∞area␈α
w␈α␈as␈α∞zero.␈α∃F␈α⎇or␈α
an␈α␈y␈α∞giv␈α␈en␈α
\mesh"
␈β
⎇␈↓ ↓H␈ε"(i.e.␈α→width␈α∂of␈α∂trapezoids␈α∂for␈α∂a␈α∂particular␈α∂appro␈α␈ximation),␈α∂y␈α␈ou␈α∂sh␈α↓ould␈α∂only␈α∂ha␈α␈v␈α␈e␈α∂to
␈β∞(␈↓ ↓H␈ε"compute␈αthe␈αappro␈α␈ximated␈αarea␈αonce.
␈β∞V␈↓ X␈ε+x
␈β∞\␈↓ α␈ε"The␈α∞P␈α⎇ASCAL␈α
function␈α
that␈α∞computes␈α
exponen␈α␈tials,␈α∞which␈α∞w␈α␈e␈α
usually␈α∞write␈↓ I␈ε(e␈↓ j␈ε",
␈β∂λ␈↓ ↓H␈ε"is␈↓ αb␈ε".␈α∨As␈α⊃an␈α⊂example␈α⊃of␈α⊃its␈α⊃use,␈α∩here's␈α⊃a␈α⊃sh␈α↓ort␈α⊃program␈α⊃to␈α⊃prin␈α␈t␈α⊃a␈α⊃table␈α⊂of
␈β∂
␈↓ ↓q␈ε5e␈α␈xp(x)
␈β∂3␈↓ ↓H␈ε"exponen␈α␈ts:
␈β⊃∨

␈β↓H␈↓ ↓$␈∧↓H↓$α
u
␈β↓J␈↓ ↓$␈∧↓J↓$Hα␈↓ "␈∧↓J"Hα␈↓ ↔␈∧↓J↔Hα
␈β↓V␈↓ ¬ε␈ε>Sampl␈α␈e␈α∂Pro␈α␈grams
␈β↓\␈↓ B␈ε"105
␈βα⊃␈↓ ↓$␈∧α⊃↓$α
u
␈βαP␈↓ ↓H␈ε∃PROGRAM␈↓ αP␈ε∃TABLE␈↓ β6␈ε∃(OUTPUT);
␈βαx␈↓ ↓H␈ε∃VAR␈↓ α?␈ε∃N:␈↓ ββ␈ε∃INTEGER;
␈ββ∨␈↓ ↓H␈ε∃BEGIN
␈ββG␈↓ ↓H␈ε∃FOR␈↓ α␈ε∃N:=1␈↓ αa␈ε∃TO␈↓ β∀␈ε∃100␈↓ βX␈ε∃DO
␈ββo␈↓ α␈ε∃WRITELN(N,EXP(N))
␈β∧⊗␈↓ ↓H␈ε∃END.
␈β⊃_

␈β↓H␈↓ ↓$␈∧↓H↓$α
u
␈β↓J␈↓ ↓$␈∧↓J↓$Hα␈↓ α→␈∧↓Jα→Hα␈↓ ↔␈∧↓J↔Hα
␈β↓V␈↓ ε↓␈ε>Sampl␈α␈e␈α∂Pro␈α␈grams
␈β↓\␈↓ ↓D␈ε"106
␈βα⊃␈↓ ↓$␈∧α⊃↓$α
u
␈βαO␈↓ ↓H␈ε2Solution
␈β∧	␈↓ ↓H␈ε∃(*␈↓ ↓{␈ε∃TRAPEZOID␈↓ β%␈ε∃APPROXIMATION␈↓ ¬∪␈ε∃TO␈↓ ¬F␈ε∃INTEGRATING␈↓ π∩␈ε∃THE␈↓ πV␈ε∃FUNCTION␈↓ λo␈ε∃EXP(-X*X)␈↓ 
→␈ε∃*)
␈β∧Y␈↓ ↓H␈ε∃PROGRAM␈↓ αP␈ε∃TRAP␈↓ β%␈ε∃(OUTPUT);
␈β¬(␈↓ ↓H␈ε∃VAR␈↓ αP␈ε∃APPROXNO,␈↓ ∧≤␈ε∃(*␈↓ ∧O␈ε∃TELLS␈↓ ¬5␈ε∃WHICH␈↓ ε≠␈ε∃APPROXIMATION␈↓ λ	␈ε∃WE'RE␈↓ λo␈ε∃WORKING␈↓ 	w␈ε∃ON␈↓ 
*␈ε∃*)
␈β¬O␈↓ αP␈ε∃NUMTRAPS,␈↓ ∧≤␈ε∃(*␈↓ ∧O␈ε∃THE␈↓ ¬∪␈ε∃NUMBER␈↓ ε
␈ε∃OF␈↓ ε=␈ε∃TRAPEZOIDS␈↓ πx␈ε∃USED␈↓ λM␈ε∃IN␈↓ 	␈ε∃THIS␈↓ 	U␈ε∃APPROX.␈↓ 
]␈ε∃*)
␈β¬w␈↓ αP␈ε∃T␈↓ ∧≤␈ε∃(*␈↓ ∧O␈ε∃KEEPS␈↓ ¬5␈ε∃TRACK␈↓ ε≠␈ε∃OF␈↓ εN␈ε∃THE␈↓ π∩␈ε∃CURRENT␈↓ λ~␈ε∃TRAPEZOID␈↓ 	D␈ε∃NUMBER␈↓ 
;␈ε∃*)
␈βε∨␈↓ ∧≤␈ε∃(*␈↓ ∧O␈ε∃WITHIN␈↓ ¬F␈ε∃THIS␈↓ ε≠␈ε∃APPROXIMATION␈↓ λ	␈ε∃*)
␈βεF␈↓ βX␈ε∃:␈↓ ∧␈ε∃INTEGER;
␈βπ∃␈↓ αP␈ε∃AREA,␈↓ ∧≤␈ε∃(*␈↓ ∧O␈ε∃RUNNING␈↓ ¬W␈ε∃TOTAL␈↓ ε=␈ε∃AREA␈↓ π∩␈ε∃OF␈↓ πE␈ε∃ALL␈↓ λ	␈ε∃TRAPEZOIDS␈↓ 	D␈ε∃IN␈↓ 	w␈ε∃APPROX.␈↓ 
␈␈ε∃*)
␈βπ=␈↓ αP␈ε∃LASTAREA␈↓ ∧≤␈ε∃(*␈↓ ∧O␈ε∃AREA␈↓ ¬$␈ε∃FROM␈↓ ¬y␈ε∃LAST␈↓ εN␈ε∃APPROXIMATION␈↓ λ<␈ε∃*)
␈βπe␈↓ βX␈ε∃:␈↓ ∧␈ε∃REAL;
␈βλ4␈↓ ↓H␈ε∃BEGIN
␈β	β␈↓ ↓H␈ε∃WRITELN('NO.':3,␈↓ βi␈ε∃'NUM␈↓ ∧>␈ε∃OF':12,␈↓ ¬F␈ε∃'APPROXIMATE':18,␈↓ πx␈ε∃'DIFFERENCE':18);
␈β	+␈↓ ↓H␈ε∃WRITELN('␈↓ αr␈ε∃':3,␈↓ βG␈ε∃'TRAPEZOIDS':12,␈↓ ¬h␈ε∃'AREA':18,␈↓ π#␈ε∃'IN␈↓ πg␈ε∃AREA':18);
␈β	R␈↓ ↓H␈ε∃NUMTRAPS:=1;␈↓ β%␈ε∃LASTAREA:=0;␈↓ ¬α␈ε∃(*␈↓ ¬5␈ε∃INITIALIZATION␈↓ π4␈ε∃*)
␈β	z␈↓ ↓H␈ε∃FOR␈↓ α␈ε∃APPROXNO:=0␈↓ βX␈ε∃TO␈↓ ∧␈ε∃12␈↓ ∧>␈ε∃DO
␈β
!␈↓ αP␈ε∃BEGIN
␈β
I␈↓ αP␈ε∃(*␈↓ ββ␈ε∃FIND␈↓ βX␈ε∃THE␈↓ ∧≤␈ε∃SUM␈↓ ∧`␈ε∃OF␈↓ ¬∪␈ε∃THE␈↓ ¬W␈ε∃AREAS␈↓ ε=␈ε∃OF␈↓ εp␈ε∃ALL␈↓ π4␈ε∃THE␈↓ πx␈ε∃TRAPEZOIDS␈↓ 	3␈ε∃*)
␈β
q␈↓ αP␈ε∃AREA:=0;
␈β_␈↓ αP␈ε∃FOR␈↓ β∀␈ε∃T:=0␈↓ βi␈ε∃TO␈↓ ∧≤␈ε∃NUMTRAPS␈↓ ¬5␈ε∃-␈↓ ¬W␈ε∃1␈↓ ¬y␈ε∃DO
␈β@␈↓ βX␈ε∃(*␈↓ ∧␈ε∃EACH␈↓ ∧`␈ε∃TIME␈↓ ¬5␈ε∃THROUGH␈↓ ε=␈ε∃THIS␈↓ π∩␈ε∃LOOP␈↓ πg␈ε∃ADDS␈↓ λ<␈ε∃IN␈↓ λo␈ε∃ONE␈↓ 	3␈ε∃MORE␈↓ 
λ␈ε∃TRAP.␈↓ 
n␈ε∃*)
␈βg␈↓ βX␈ε∃AREA:=AREA␈↓ ¬∪␈ε∃+␈↓ ¬5␈ε∃(1/NUMTRAPS)␈↓ π∩␈ε∃*␈↓ π4␈ε∃0.5
␈β∂␈↓ ∧O␈ε∃*(EXP(␈↓ ¬F␈ε∃-␈↓ ¬h␈ε∃SQR(T/NUMTRAPS))␈↓ λ	␈ε∃+␈↓ λ+␈ε∃EXP(␈↓ 	␈ε∃-␈↓ 	"␈ε∃SQR((T+1)/NUMTRAPS)));
␈β7␈↓ αP␈ε∃(*␈↓ ββ␈ε∃PRINT␈↓ βi␈ε∃OUT␈↓ ∧-␈ε∃THE␈↓ ∧q␈ε∃ANSWER␈↓ ¬h␈ε∃FOR␈↓ ε,␈ε∃THIS␈↓ π↓␈ε∃APPROXIMATION␈↓ λo␈ε∃*)
␈β↑␈↓ αP␈ε∃WRITELN(APPROXNO:3,␈↓ ¬$␈ε∃NUMTRAPS:12,␈↓ π↓␈ε∃'␈↓ π#␈ε∃':2,␈↓ πx␈ε∃AREA,␈↓ λ↑␈ε∃'␈↓ 	␈ε∃':2,␈↓ 	U␈ε∃AREA␈↓ 
*␈ε∃-␈↓ 
L␈ε∃LASTAREA);
␈β
ε␈↓ αP␈ε∃(*␈↓ ββ␈ε∃SET␈↓ βG␈ε∃UP␈↓ βz␈ε∃FOR␈↓ ∧>␈ε∃THE␈↓ ¬α␈ε∃NEXT␈↓ ¬W␈ε∃TIME␈↓ ε,␈ε∃AROUND␈↓ π#␈ε∃*)
␈β
-␈↓ αP␈ε∃LASTAREA:=AREA;
␈β
U␈↓ αP␈ε∃NUMTRAPS:=NUMTRAPS*2;
␈β
⎇␈↓ αP␈ε∃END
␈β∞$␈↓ ↓H␈ε∃END.
␈β⊃_

␈β↓H␈↓ ↓$␈∧↓H↓$α
u
␈β↓J␈↓ ↓$␈∧↓J↓$Hα␈↓ "␈∧↓J"Hα␈↓ ↔␈∧↓J↔Hα
␈β↓V␈↓ ¬ε␈ε>Sampl␈α␈e␈α∂Pro␈α␈grams
␈β↓\␈↓ B␈ε"107
␈βα⊃␈↓ ↓$␈∧α⊃↓$α
u
␈βαT␈↓ ↓H␈∧αT↓Hα
-
␈βαU␈↓ ↓H␈∧αU↓Hλα␈↓ s␈∧αUsλα
␈βα\␈↓ ↓H␈∧α\↓Hα
-
␈βαk␈↓ ↓H␈ε∃NO.␈↓ αa␈ε∃NUM␈↓ β%␈ε∃OF␈↓ ∧>␈ε∃APPROXIMATE␈↓ π↓␈ε∃DIFFERENCE
␈ββ∪␈↓ α≥␈ε∃TRAPEZOIDS␈↓ ¬5␈ε∃AREA␈↓ π4␈ε∃IN␈↓ πg␈ε∃AREA
␈ββ;␈↓ ↓j␈ε∃0␈↓ β6␈ε∃1␈↓ βz␈ε∃6.839397192E-01␈↓ ε,␈ε∃6.839397192E-01
␈ββb␈↓ ↓j␈ε∃1␈↓ β6␈ε∃2␈↓ βz␈ε∃7.313702583E-01␈↓ ε,␈ε∃4.743053793E-02
␈β∧
␈↓ ↓j␈ε∃2␈↓ β6␈ε∃4␈↓ βz␈ε∃7.429841041E-01␈↓ ε,␈ε∃1.161384582E-02
␈β∧1␈↓ ↓j␈ε∃3␈↓ β6␈ε∃8␈↓ βz␈ε∃7.458656132E-01␈↓ ε,␈ε∃2.881512045E-03
␈β∧Y␈↓ ↓j␈ε∃4␈↓ β%␈ε∃16␈↓ βz␈ε∃7.465846002E-01␈↓ ε,␈ε∃7.189884781E-04
␈β¬↓␈↓ ↓j␈ε∃5␈↓ β%␈ε∃32␈↓ βz␈ε∃7.467642664E-01␈↓ ε,␈ε∃1.796633005E-04
␈β¬(␈↓ ↓j␈ε∃6␈↓ β%␈ε∃64␈↓ βz␈ε∃7.468091607E-01␈↓ ε,␈ε∃4.489719867E-05
␈β¬P␈↓ ↓j␈ε∃7␈↓ β∀␈ε∃128␈↓ βz␈ε∃7.468203663E-01␈↓ ε,␈ε∃1.120567321E-05
␈β¬w␈↓ ↓j␈ε∃8␈↓ β∀␈ε∃256␈↓ βz␈ε∃7.468231856E-01␈↓ ε,␈ε∃2.816319465E-06
␈βε∨␈↓ ↓j␈ε∃9␈↓ β∀␈ε∃512␈↓ βz␈ε∃7.468239307E-01␈↓ ε,␈ε∃7.450580596E-07
␈βεG␈↓ ↓Y␈ε∃10␈↓ ββ␈ε∃1024␈↓ βz␈ε∃7.468240916E-01␈↓ ε,␈ε∃1.639127731E-07
␈βεn␈↓ ↓Y␈ε∃11␈↓ ββ␈ε∃2048␈↓ βz␈ε∃7.468241393E-01␈↓ ε,␈ε∃4.470348358E-08
␈βπ⊗␈↓ ↓Y␈ε∃12␈↓ ββ␈ε∃4096␈↓ βz␈ε∃7.468240559E-01␈↓ ε≠␈ε∃-8.195638656E-08
␈βπQ␈↓ ↓H␈∧πQ↓Hα
-
␈βπS␈↓ ↓H␈∧πS↓Hλα␈↓ s␈∧πSsλα
␈βπZ␈↓ ↓H␈∧πZ↓Hα
-
␈β⊃_

␈β↓H␈↓ ↓$␈∧↓H↓$α
u
␈β↓J␈↓ ↓$␈∧↓J↓$Hα␈↓ α→␈∧↓Jα→Hα␈↓ ↔␈∧↓J↔Hα
␈β↓V␈↓ ε↓␈ε>Sampl␈α␈e␈α∂Pro␈α␈grams
␈β↓\␈↓ ↓D␈ε"108
␈βα⊃␈↓ ↓$␈∧α⊃↓$α
u
␈βαO␈↓ ↓H␈ε2Sample␈αProgram
␈ββ4␈↓ ↓H␈ε∃(*␈↓ ↓{␈ε∃This␈↓ αP␈ε∃solution␈↓ βi␈ε∃does␈↓ ∧>␈ε∃not␈↓ ¬α␈ε∃produce␈↓ ε
␈ε∃the␈↓ εN␈ε∃correct␈↓ πV␈ε∃output.␈↓ λ↑␈ε∃*)
␈ββ\␈↓ ↓H␈ε∃(*␈↓ ↓{␈ε∃It␈↓ α.␈ε∃exhibits␈↓ βG␈ε∃two␈↓ ∧␈ε∃very␈↓ ∧`␈ε∃common␈↓ ¬W␈ε∃programming␈↓ π#␈ε∃errors,␈↓ λ↑␈ε∃*)
␈β∧β␈↓ ↓H␈ε∃(*␈↓ ↓{␈ε∃which␈↓ αa␈ε∃you␈↓ β%␈ε∃should␈↓ ∧≤␈ε∃look␈↓ ∧q␈ε∃out␈↓ ¬5␈ε∃for.␈↓ ε
␈ε∃*)
␈β∧+␈↓ ↓Y␈ε∃PROGRAM␈↓ αa␈ε∃TRAP␈↓ β6␈ε∃(␈↓ βX␈ε∃OUTPUT␈↓ ∧O␈ε∃)␈↓ ∧q␈ε∃;
␈β∧R␈↓ ↓H␈ε∃VAR␈↓ αP␈ε∃APPROXNO,␈↓ ∧`␈ε∃(*␈↓ ¬∪␈ε∃TELLS␈↓ ¬y␈ε∃WHICH␈↓ ε←␈ε∃APPROXIMATION␈↓ λM␈ε∃WE␈↓ 	␈ε∃ARE␈↓ 	D␈ε∃WORKING␈↓ 
L␈ε∃ON␈↓ 
␈␈ε∃*)
␈β∧z␈↓ αP␈ε∃NUMTRAPS,␈↓ ∧`␈ε∃(*␈↓ ¬∪␈ε∃THE␈↓ ¬W␈ε∃NUMBER␈↓ εN␈ε∃OF␈↓ π↓␈ε∃TRAPEZOIDS␈↓ λ<␈ε∃IN␈↓ λo␈ε∃THE␈↓ 	3␈ε∃APPROX.␈↓ 
n␈ε∃*)
␈β¬"␈↓ αP␈ε∃T␈↓ ∧`␈ε∃(*␈↓ ¬∪␈ε∃KEEPS␈↓ ¬y␈ε∃TRACK␈↓ ε←␈ε∃OF␈↓ π∩␈ε∃THE␈↓ πV␈ε∃CURRENT␈↓ λ↑␈ε∃TRAPEZOID␈↓ 
]␈ε∃*)
␈β¬I␈↓ ∧`␈ε∃(*␈↓ ¬∪␈ε∃WITHIN␈↓ ε
␈ε∃THIS␈↓ ε←␈ε∃APPROXIMATION␈↓ 
]␈ε∃*)
␈β¬q␈↓ βX␈ε∃:␈↓ ∧␈ε∃INTEGER␈↓ ¬∪␈ε∃;
␈βε_␈↓ αP␈ε∃TRAP,␈↓ ∧`␈ε∃(*␈↓ ¬∪␈ε∃AREA␈↓ ¬h␈ε∃OF␈↓ ε≠␈ε∃ONE␈↓ ε←␈ε∃TRAPEZOID␈↓ λ	␈ε∃*)
␈βε@␈↓ αP␈ε∃AREA,␈↓ ∧`␈ε∃(*␈↓ ¬∪␈ε∃RUNNING␈↓ ε≠␈ε∃TOTAL␈↓ π↓␈ε∃AREA␈↓ πV␈ε∃OF␈↓ λ	␈ε∃ALL␈↓ λM␈ε∃TRAPEZOIDS␈↓ 
λ␈ε∃*)
␈βεh␈↓ αP␈ε∃LASTAREA␈↓ ∧`␈ε∃(*␈↓ ¬∪␈ε∃AREA␈↓ ¬h␈ε∃FROM␈↓ ε=␈ε∃LAST␈↓ π∩␈ε∃APPROXIMATION␈↓ 	␈ε∃*)
␈βπ∂␈↓ βX␈ε∃:␈↓ ∧␈ε∃REAL␈↓ ∧`␈ε∃;
␈βπ7␈↓ ↓H␈ε∃BEGIN
␈βπ↑␈↓ ↓H␈ε∃WRITELN('NO.':3,␈↓ βi␈ε∃'NUM␈↓ ∧>␈ε∃OF':12,␈↓ ¬F␈ε∃'APPROXIMATE':18,␈↓ πx␈ε∃'DIFFERENCE':18)␈↓ 
→␈ε∃;
␈βλε␈↓ ↓H␈ε∃WRITELN('␈↓ αr␈ε∃':3,␈↓ βG␈ε∃'TRAPEZOIDS':12,␈↓ ¬h␈ε∃'AREA':18,␈↓ π#␈ε∃'IN␈↓ πg␈ε∃AREA':18)␈↓ 	⊃␈ε∃;
␈βλ.␈↓ ↓H␈ε∃NUMTRAPS␈↓ αa␈ε∃:=␈↓ β∀␈ε∃1␈↓ β6␈ε∃;
␈βλU␈↓ ↓H␈ε∃LASTAREA␈↓ αa␈ε∃:=␈↓ β∀␈ε∃0.0␈↓ βX␈ε∃;
␈βλ⎇␈↓ ↓H␈ε∃AREA␈↓ α≥␈ε∃:=␈↓ αP␈ε∃0.0␈↓ β∀␈ε∃;␈↓ βX␈ε∃(****THE␈↓ ∧q␈ε∃FIRST␈↓ ¬W␈ε∃ERROR:␈↓ εN␈ε∃`AREA'␈↓ πE␈ε∃SHOULD␈↓ λ<␈ε∃BE␈↓ λo␈ε∃REINITIALIZED␈↓ 
]␈ε∃EACH
␈β	$␈↓ ∧-␈ε∃SUMMATION.␈↓ ¬y␈ε∃MOVE␈↓ εN␈ε∃THIS␈↓ π#␈ε∃COMMAND␈↓ λ+␈ε∃INTO␈↓ 	␈ε∃THE␈↓ 	D␈ε∃FOLLOWING
␈β	L␈↓ ∧-␈ε∃ITERATION.␈↓ ¬h␈ε∃*****)
␈β	t␈↓ ↓H␈ε∃FOR␈↓ α␈ε∃APPROXNO␈↓ β6␈ε∃:=␈↓ βi␈ε∃0␈↓ ∧␈ε∃TO␈↓ ∧>␈ε∃12␈↓ ∧q␈ε∃DO
␈β
≠␈↓ α␈ε∃BEGIN
␈β
C␈↓ α␈ε∃(*␈↓ α?␈ε∃FIND␈↓ β∀␈ε∃THE␈↓ βX␈ε∃SUM␈↓ ∧≤␈ε∃OF␈↓ ∧O␈ε∃THE␈↓ ¬∪␈ε∃AREAS␈↓ ¬y␈ε∃OF␈↓ ε,␈ε∃ALL␈↓ εp␈ε∃TRAPEZOIDS␈↓ λ+␈ε∃*)
␈β
j␈↓ α␈ε∃FOR␈↓ αP␈ε∃T␈↓ αr␈ε∃:=␈↓ β%␈ε∃0␈↓ βG␈ε∃TO␈↓ βz␈ε∃NUMTRAPS␈↓ ¬∪␈ε∃DO
␈β∩␈↓ αP␈ε∃TRAP␈↓ β%␈ε∃:=␈↓ βX␈ε∃(1.0/NUMTRAPS)*0.5*
␈β:␈↓ ∧≤␈ε∃(EXP(-SQR(T/NUMTRAPS))␈↓ π#␈ε∃+␈↓ πE␈ε∃EXP(-SQR((T+1)/NUMTRAPS)))␈↓ ⊂␈ε∃;
␈βa␈↓ αP␈ε∃AREA␈↓ β%␈ε∃:=␈↓ βX␈ε∃AREA␈↓ ∧-␈ε∃+␈↓ ∧O␈ε∃TRAP␈↓ ¬$␈ε∃;
␈β	␈↓ β6␈ε∃(***␈↓ ∧≤␈ε∃THE␈↓ ∧`␈ε∃SECOND␈↓ ¬W␈ε∃ERROR.␈↓ ε←␈ε∃THIS␈↓ π4␈ε∃STATEMENT␈↓ λ↑␈ε∃IS␈↓ 	⊃␈ε∃NOT␈↓ 	U␈ε∃INSIDE␈↓ 
L␈ε∃THE
␈β0␈↓ ∧≤␈ε∃T-ITERATION,␈↓ ¬y␈ε∃SO␈↓ ε,␈ε∃ONLY␈↓ π↓␈ε∃THE␈↓ πE␈ε∃LAST␈↓ λ~␈ε∃TRAPEZOID␈↓ 	D␈ε∃IS␈↓ 	w␈ε∃ADDED␈↓ 
]␈ε∃TO
␈βX␈↓ ∧≤␈ε∃THE␈↓ ∧`␈ε∃AREA.␈↓ ¬W␈ε∃A␈↓ ¬y␈ε∃BEGIN-END␈↓ π#␈ε∃PAIR␈↓ πx␈ε∃CORRECTS␈↓ 	⊃␈ε∃THIS.␈↓ 
λ␈ε∃****)
␈β
␈↓ α␈ε∃(*␈↓ α?␈ε∃PRINT␈↓ β%␈ε∃OUT␈↓ βi␈ε∃THE␈↓ ∧-␈ε∃ANSWER␈↓ ¬$␈ε∃FOR␈↓ ¬h␈ε∃THIS␈↓ ε=␈ε∃APPROXIMATION␈↓ λ+␈ε∃*)
␈β
'␈↓ α␈ε∃WRITELN␈↓ β∀␈ε∃(␈↓ β6␈ε∃APPROXNO:3,␈↓ ¬α␈ε∃NUMTRAPS:12,␈↓ ε←␈ε∃'␈↓ π↓␈ε∃':2,␈↓ πV␈ε∃AREA,␈↓ λ<␈ε∃'␈↓ λ↑␈ε∃':2,␈↓ 	3␈ε∃AREA-LASTAREA␈↓ !␈ε∃)␈↓ C␈ε∃;
␈β
O␈↓ α␈ε∃(*␈↓ α?␈ε∃SET␈↓ ββ␈ε∃UP␈↓ β6␈ε∃FOR␈↓ βz␈ε∃THE␈↓ ∧>␈ε∃NEXT␈↓ ¬∪␈ε∃TIME␈↓ ¬h␈ε∃AROUND␈↓ ε←␈ε∃*)
␈β
v␈↓ α␈ε∃LASTAREA␈↓ β%␈ε∃:=␈↓ βX␈ε∃AREA␈↓ ∧-␈ε∃;
␈β∞≡␈↓ α␈ε∃NUMTRAPS␈↓ β%␈ε∃:=␈↓ βX␈ε∃NUMTRAPS*2
␈β∞F␈↓ α␈ε∃END
␈β∞m␈↓ ↓H␈ε∃END.
␈β⊃_

␈β↓H␈↓ ↓$␈∧↓H↓$α
u
␈β↓J␈↓ ↓$␈∧↓J↓$Hα␈↓ "␈∧↓J"Hα␈↓ ↔␈∧↓J↔Hα
␈β↓V␈↓ ¬ε␈ε>Sampl␈α␈e␈α∂Pro␈α␈grams
␈β↓\␈↓ B␈ε"109
␈βα⊃␈↓ ↓$␈∧α⊃↓$α
u
␈βαO␈↓ ↓H␈ε2Sample␈αProgram
␈βα{␈↓ α␈ε"W␈α⎇rite␈α∞a␈α∞program␈α∞to␈α∞do␈α∞the␈α∞w␈α␈eekly␈α∞pa␈α␈yroll␈α∞calculation␈α∞for␈α∞an␈α∞organization.␈α⊗F␈α⎇or
␈ββ&␈↓ ↓H␈ε"each␈α
emplo␈α␈y␈α␈ee,␈α
y␈α␈our␈α∞program␈α
will␈α
calculate␈α
the␈α∞gross␈α
pa␈α␈y,␈α
deductions,␈α∞and␈α
net␈α
pa␈α␈y.
␈ββQ␈↓ ↓H␈ε"The␈αoutput␈α
will␈αbe␈α
a␈α|le␈α
to␈α
be␈αsen␈α␈t␈α
to␈αthe␈α
check-writing␈αprogram␈α
(format␈αexplained
␈ββ|␈↓ ↓H␈ε"belo␈α␈w),␈αas␈αw␈α␈ell␈αas␈αa␈αsh␈α↓ort␈αsummary␈αof␈αh␈α↓o␈α␈w␈αm␈α␈uch␈αthe␈αorganization␈αsh␈α↓ould␈αsend␈αto␈αthe
␈β∧(␈↓ ↓H␈ε"go␈α␈v␈α␈ernmen␈α␈t␈αand␈αinsurance␈αcompan␈α␈y␈αthis␈αw␈α␈eek.
␈β∧S␈↓ α␈ε"The␈α⊂data-en␈α␈try␈α∂clerks␈α⊂produce␈α∂a␈α⊂|le␈α∂each␈α⊂w␈α␈eek␈α∂which␈α⊂con␈α␈tains␈α∂the␈α⊂n␈α␈um␈α␈ber␈α∂of
␈β∧␈␈↓ ↓H␈ε"people␈α
curren␈α␈tly␈α
emplo␈α␈y␈α␈ed␈αthis␈α
w␈α␈eek,␈αfollo␈α␈w␈α␈ed␈α
by␈αthis␈α
information␈αfor␈α
each␈α
emplo␈α␈y␈α␈ee:
␈β¬L␈↓ βc␈ε"Social␈αSecurit␈α␈y␈αn␈α␈um␈α␈ber␈↓ π∃␈ε"(9-digit␈αin␈α␈teger)
␈β¬w␈↓ βc␈ε"Hourly␈αpa␈α␈y␈αrate␈↓ π∃␈ε"(a␈αreal␈αn␈α␈um␈α␈ber)
␈βε"␈↓ βc␈ε"Num␈α␈ber␈αof␈αexemptions
␈βεM␈↓ βc␈ε"Health␈αinsurance␈αcode␈↓ π∃␈ε"(1,␈α2␈αor␈α3;␈αsee␈αbelo␈α␈w)
␈βεx␈↓ βc␈ε"Hours␈αw␈α␈ork␈α␈ed␈↓ π∃␈ε"(a␈αreal␈αn␈α␈um␈α␈ber)
␈βπ@␈↓ α␈ε"Gross␈α⊂Pa␈α␈y␈α∂is␈α⊂calculated␈α⊂on␈α∂the␈α⊂regular␈α⊂h␈α↓ourly␈α∂pa␈α␈y␈α⊂rate␈α⊂for␈α∂the␈α⊂|rst␈α⊂40␈α∂h␈α↓ours,
␈βπk␈↓ ↓H␈ε"and␈αtime-and-a-half␈αbey␈α␈ond␈αthat␈α
up␈αto␈αa␈α
limit␈αof␈α54␈αh␈α↓ours␈α
in␈αan␈α␈y␈αgiv␈α␈en␈αw␈α␈eek.␈α⊃(If␈αan
␈βλ⊗␈↓ ↓H␈ε"emplo␈α␈y␈α␈ee␈α
w␈α␈ork␈α␈ed␈α∞63␈α∞h␈α↓ours,␈α∞he␈α
w␈α␈ould␈α∞be␈α∞paid␈α
for␈α∞40␈α∞h␈α↓ours␈α
at␈α∞regular␈α∞pa␈α␈y,␈α∞14␈α
h␈α↓ours
␈βλB␈↓ ↓H␈ε"at␈αtime-and-a-half,␈αand␈αw␈α␈ouldn't␈αget␈αa␈αcen␈α␈t␈αfor␈αthe␈αother␈αnine␈αh␈α↓ours.)
␈βλn␈↓ α␈ε"Deductions␈α∂are␈α∞m␈α↓ore␈α∂complicated.␈α_The␈α∂t␈α␈ype␈α∞of␈α∂deductions␈α∂and␈α∞the␈α∂meth␈α↓od␈α∞to
␈β	→␈↓ ↓H␈ε"compute␈αeach:
␈β	E␈↓ ↓Z␈ε6∂␈↓ ↓}␈ε"F␈α⎇ederal␈αincome␈αtax␈αwithh␈α↓olding:
␈β
_␈↓ αm␈ε(T␈↓ βε␈ε(axab␈↓ βP␈ε(l␈↓ β[␈ε(e␈↓ βt␈ε(P␈↓ ∧⊂␈ε(a␈↓ ∧#␈ε(y␈↓ ∧6␈ε"=␈ε(␈α
G␈↓ ¬␈ε(r␈↓ ¬⊃␈ε(oss␈↓ ¬N␈ε(P␈↓ ¬i␈ε(a␈↓ ¬|␈ε(y␈↓ ε↔␈ε6␈␈↓ εZ␈ε"14␈ε6␈αλα␈ε"␈αλ(␈↓ π>␈ε(N␈↓ πa␈ε(umbe␈↓ λ4␈ε(r␈↓ λO␈ε(o␈↓ λ`␈ε(f␈↓ λ␈␈ε(E␈↓ 	≠␈ε(xe␈α↓m␈α␈pt␈α↓ions␈ε")␈ε6␈αλ␈␈↓ →␈ε"11
␈β
~␈↓ εG␈ε5$␈↓ ε␈ε5$
␈β
=␈↓ λg␈ε9␈␈ε%␈α␈4
␈β
C␈↓ αk␈ε(W␈↓ β∂␈ε(it␈α↓hho␈↓ βd␈ε(l␈↓ βo␈ε(di␈α↓n␈↓ ∧$␈ε(g␈↓ ∧6␈ε"=␈↓ ∧d␈ε(T␈↓ ∧⎇␈ε(axab␈↓ ¬G␈ε(l␈↓ ¬R␈ε(e␈↓ ¬k␈ε(P␈↓ επ␈ε(a␈↓ ε~␈ε(y␈↓ ε5␈ε6α␈ε"␈αλ(0.14␈αλ+␈αλ2.3␈ε6␈αλα␈ε"␈αλ1␈↓ λU␈ε"0␈↓ 	≥␈ε6α␈↓ 	I␈ε(T␈↓ 	c␈ε(axab␈↓ 
,␈ε(l␈↓ 
7␈ε(e␈↓ 
Q␈ε(P␈↓ 
l␈ε(a␈↓ 
␈␈ε(y␈↓ ∩␈ε")
␈β≥␈↓ ↓Z␈ε6∂␈↓ ↓}␈ε"State␈αincome␈αtax␈αwithh␈α↓olding:
␈βu␈↓ ¬0␈ε"31%␈ε(␈α
o␈↓ ε⊃␈ε(f␈↓ ε1␈ε(F␈↓ εM␈ε(ede␈↓ ε}␈ε(r␈↓ π∞␈ε(a␈↓ π!␈ε(l␈↓ π6␈ε(w␈↓ πQ␈ε(i␈α↓thho␈↓ λ&␈ε(l␈↓ λ2␈ε(din␈↓ λf␈ε(g
␈βO␈↓ ↓Z␈ε6∂␈↓ ↓}␈ε"Social␈αSecurit␈α␈y␈αT␈α⎇ax:
␈β
(␈↓ ∧,␈ε(T␈↓ ∧F␈ε(he␈α
sma␈↓ ¬8␈ε(l␈↓ ¬C␈ε(l␈↓ ¬O␈ε(e␈↓ ¬↑␈ε(r␈↓ ¬x␈ε(o␈↓ ε
␈ε(f␈↓ ε>␈ε"16.70␈↓ π~␈ε(o␈↓ π+␈ε(r␈↓ πF␈ε"7.7%␈ε(␈α
o␈↓ λ1␈ε(f␈↓ λP␈ε(G␈↓ λm␈ε(r␈↓ λ⎇␈ε(o␈α↓ss␈↓ 	;␈ε(P␈↓ 	V␈ε(a␈↓ 	i␈ε(y
␈β
*␈↓ ε+␈ε5$
␈β∞↓␈↓ ↓Z␈ε6∂␈↓ ↓}␈ε"Health␈αInsurance:
␈β∞M␈↓ ∧2␈ε"1␈↓ ∧D␈ε6␈␈␈↓ ¬␈ε(N␈↓ ¬/␈ε(o␈α
co␈↓ ¬j␈ε(v␈↓ ¬⎇␈ε(e␈↓ ε
␈ε(r␈↓ ε≥␈ε(a␈↓ ε0␈ε(g␈↓ εB␈ε(e␈ε".␈α∀(␈↓ π∞␈ε"0␈ε(␈α
pe␈↓ πK␈ε(r␈↓ πf␈ε(w␈↓ λ↓␈ε(ee␈↓ λ∨␈ε(k␈↓ λ3␈ε")
␈β∞O␈↓ ε{␈ε5$
␈β∞y␈↓ ∧2␈ε"2␈↓ ∧D␈ε6␈␈␈↓ ¬␈ε(E␈↓ ¬(␈ε(mp␈↓ ¬Z␈ε(l␈↓ ¬e␈ε(o␈↓ ¬v␈ε(y␈↓ ε	␈ε(ee␈αco␈↓ εR␈ε(v␈↓ εe␈ε(e␈↓ εt␈ε(r␈↓ π¬␈ε(a␈↓ π_␈ε(g␈↓ π*␈ε(e␈α
on␈↓ πj␈ε(l␈↓ πu␈ε(y␈↓ λλ␈ε".␈α∀(␈↓ λE␈ε"2␈ε(␈α
pe␈↓ 	α␈ε(r␈↓ 	≥␈ε(w␈↓ 	8␈ε(ee␈↓ 	V␈ε(k␈↓ 	j␈ε")
␈β∞{␈↓ λ2␈ε5$
␈β∂$␈↓ ∧2␈ε"3␈↓ ∧D␈ε6␈␈␈↓ ¬␈ε(F␈↓ ¬(␈ε(ami␈↓ ¬g␈ε(l␈↓ ¬s␈ε(y␈↓ ε⊂␈ε(co␈↓ ε0␈ε(v␈↓ εC␈ε(e␈↓ εR␈ε(r␈↓ εc␈ε(a␈↓ εv␈ε(g␈↓ πλ␈ε(e␈ε"␈α
(␈↓ π@␈ε"7.50␈ε(␈α
pe␈↓ λ+␈ε(r␈↓ λE␈ε(w␈↓ λ`␈ε(e␈α↓e␈↓ λ␈␈ε(k␈↓ 	∪␈ε")
␈β∂&␈↓ π-␈ε5$
␈β⊃_

␈β↓H␈↓ ↓$␈∧↓H↓$α
u
␈β↓J␈↓ ↓$␈∧↓J↓$Hα␈↓ α→␈∧↓Jα→Hα␈↓ ↔␈∧↓J↔Hα
␈β↓V␈↓ ε↓␈ε>Sampl␈α␈e␈α∂Pro␈α␈grams
␈β↓\␈↓ ↓D␈ε"110
␈βα⊃␈↓ ↓$␈∧α⊃↓$α
u
␈βαO␈↓ ↓H␈ε"Net␈αλPa␈α␈y␈αλis␈αλsimply␈αλgross␈αλpa␈α␈y␈αλmin␈α␈us␈αλall␈αλdeductions.␈α∞Y␈α⎇our␈αλprogram␈αλreads␈αλeach␈αλemplo␈α␈y␈α␈ee's
␈βαz␈↓ ↓H␈ε"data,␈α∂calculates␈α∂his␈α∞taxes␈α∂and␈α∂deductions,␈α∂and␈α∂writes␈α∞a␈α∂line␈α∂in␈α∞the␈α∂output␈α∂|le␈α∞con-
␈ββ%␈↓ ↓H␈ε"taining␈α∂his␈α⊂social␈α⊂securit␈α␈y␈α⊂n␈α␈um␈α␈ber␈α∂and␈α⊂net␈α⊂pa␈α␈y.␈α≠A$er␈α⊂the␈α∂last␈α⊂emplo␈α␈y␈α␈ee␈α⊂has␈α∂been
␈ββP␈↓ ↓H␈ε"processed,␈α
a␈αsummary␈αreport␈α
sh␈α↓o␈α␈wing␈αthe␈α
n␈α␈um␈α␈ber␈αof␈α
emplo␈α␈y␈α␈ees␈αprocessed,␈αtotal␈α
gross
␈ββ|␈↓ ↓H␈ε"pa␈α␈y,␈α
total␈αdeductions␈α
of␈α
each␈αt␈α␈ype,␈α
and␈αtotal␈α
net␈α
pa␈α␈y␈αis␈α
to␈α
be␈α
prin␈α␈ted␈αon␈α
the␈α
terminal.
␈β∧'␈↓ α␈ε"Y␈α⎇our␈α
program␈α
sh␈α↓ould␈α
perform␈αreasonable␈α
operations␈α
for␈α
all␈α
possible␈α
input␈αdata.
␈β∧R␈↓ ↓H␈ε"F␈α⎇or␈α∞example,if␈α∂someone␈α∂hasn't␈α∂made␈α∞en␈α↓ough␈α∂this␈α∂w␈α␈eek␈α∂to␈α∞co␈α␈v␈α␈er␈α∂all␈α∂his␈α∞deductions,
␈β∧⎇␈↓ ↓H␈ε"then␈αn␈α↓one␈αget␈αwithheld,␈αbut␈αa␈αmessage␈αsh␈α↓ould␈α
be␈αprin␈α␈ted␈αout␈αon␈αthe␈αterminal␈αto␈αtell
␈β¬(␈↓ ↓H␈ε"the␈αpa␈α␈yroll␈αclerk␈αto␈αman␈α␈ually␈αin␈α␈terv␈α␈ene␈αto␈αcorrect␈αthings␈αnext␈αw␈α␈eek.
␈β⊃_

␈β↓H␈↓ ↓$␈∧↓H↓$α
u
␈β↓J␈↓ ↓$␈∧↓J↓$Hα␈↓ "␈∧↓J"Hα␈↓ ↔␈∧↓J↔Hα
␈β↓V␈↓ ¬ε␈ε>Sampl␈α␈e␈α∂Pro␈α␈grams
␈β↓\␈↓ B␈ε"111
␈βα⊃␈↓ ↓$␈∧α⊃↓$α
u
␈βαO␈↓ ↓H␈ε2Solution
␈β∧Y␈↓ ↓H␈ε∃(*THIS␈↓ α?␈ε∃PROGRAM␈↓ βG␈ε∃PROCESSES␈↓ ∧q␈ε∃A␈↓ ¬∪␈ε∃WEEKLY␈↓ ε
␈ε∃PAYROLL.*)
␈β¬␈↓ ↓H␈ε∃(*INPUT␈↓ αa␈ε∃:␈↓ ββ␈ε∃FIRST␈↓ βi␈ε∃LINE␈↓ ∧O␈ε∃:␈↓ ∧q␈ε∃NUMBER␈↓ ¬h␈ε∃OF␈↓ ε≠␈ε∃PEOPLE␈↓ π∩␈ε∃EMPLOYED*)
␈β¬(␈↓ ↓H␈ε∃(*␈↓ ββ␈ε∃NEXT␈↓ βX␈ε∃LINES␈↓ ∧O␈ε∃:␈↓ ∧q␈ε∃DATA␈↓ ¬F␈ε∃FOR␈↓ ε
␈ε∃EACH␈↓ ε←␈ε∃EMPLOYEE,␈↓ λ	␈ε∃ONE␈↓ λM␈ε∃PER␈↓ 	⊃␈ε∃LINE*)
␈β¬O␈↓ ↓H␈ε∃(*␈↓ ¬α␈ε∃SOCIAL␈↓ ¬y␈ε∃SECURITY␈↓ π∩␈ε∃NUMBER␈↓ λ	␈ε∃(␈↓ λ+␈ε∃INTEGER␈↓ 	3␈ε∃)*)
␈β¬w␈↓ ↓H␈ε∃(*␈↓ ¬α␈ε∃HOURLY␈↓ ¬y␈ε∃PAY␈↓ ε=␈ε∃RATE␈↓ π∩␈ε∃(␈↓ π4␈ε∃REAL␈↓ λ	␈ε∃)*)
␈βε∨␈↓ ↓H␈ε∃(*␈↓ ¬α␈ε∃NUMBER␈↓ ¬y␈ε∃OF␈↓ ε,␈ε∃EXEMPTIONS␈↓ πg␈ε∃(␈↓ λ	␈ε∃INTEGER␈↓ 	⊃␈ε∃)*)
␈βεF␈↓ ↓H␈ε∃(*␈↓ ¬α␈ε∃HEALTH␈↓ ¬y␈ε∃INSURANCE␈↓ π#␈ε∃CODE␈↓ πx␈ε∃(␈↓ λ~␈ε∃1,␈↓ λM␈ε∃2␈↓ λo␈ε∃OR␈↓ 	"␈ε∃3␈↓ 	D␈ε∃)*)
␈βεn␈↓ ↓H␈ε∃(*␈↓ ¬α␈ε∃NUMBER␈↓ ¬y␈ε∃OF␈↓ ε,␈ε∃HOURS␈↓ π∩␈ε∃WORKED␈↓ λ	␈ε∃(␈↓ λ+␈ε∃REAL␈↓ 	␈ε∃)*)
␈βπ∃␈↓ ↓H␈ε∃(*OUTPUT␈↓ αa␈ε∃:␈↓ ββ␈ε∃TO␈↓ β6␈ε∃OUTPUT␈↓ ∧-␈ε∃FILE␈↓ ¬α␈ε∃:␈↓ ¬$␈ε∃CHECK␈↓ ε
␈ε∃WRITING␈↓ π∩␈ε∃DATA␈↓ πg␈ε∃FOR␈↓ λ+␈ε∃EACH␈↓ 	␈ε∃EMPLOYEE,*)
␈βπ=␈↓ ↓H␈ε∃(*␈↓ ¬$␈ε∃ONE␈↓ ¬h␈ε∃PER␈↓ ε,␈ε∃LINE*)
␈βπe␈↓ ↓H␈ε∃(*␈↓ ¬F␈ε∃SOCIAL␈↓ ε=␈ε∃SECURITY␈↓ πV␈ε∃NUMBER*)
␈βλ␈↓ ↓H␈ε∃(*␈↓ ¬F␈ε∃NET␈↓ ε
␈ε∃PAY*)
␈βλ4␈↓ ↓H␈ε∃(*␈↓ αr␈ε∃TO␈↓ β%␈ε∃TERMINAL␈↓ ∧O␈ε∃:␈↓ ∧q␈ε∃EXCEPTION␈↓ ε≠␈ε∃CONDITIONS␈↓ πV␈ε∃(␈↓ πx␈ε∃IF␈↓ λ+␈ε∃ANY␈↓ λo␈ε∃)*)
␈βλ[␈↓ ↓H␈ε∃(*␈↓ ∧q␈ε∃SUMMARY␈↓ ¬y␈ε∃INFORMATION␈↓ πE␈ε∃FOR␈↓ λ	␈ε∃THE␈↓ λM␈ε∃COMPANY*)
␈β	β␈↓ ↓H␈ε∃(*␈↓ ¬∪␈ε∃NUMBER␈↓ ε
␈ε∃OF␈↓ ε=␈ε∃EMPLOYEES*)
␈β	+␈↓ ↓H␈ε∃(*␈↓ ¬∪␈ε∃TOTAL␈↓ ¬y␈ε∃GROSS␈↓ ε←␈ε∃PAY*)
␈β	R␈↓ ↓H␈ε∃(*␈↓ ¬∪␈ε∃TOTAL␈↓ ¬y␈ε∃FEDERAL␈↓ π↓␈ε∃TAX␈↓ πE␈ε∃DEDUCTIONS*)
␈β	z␈↓ ↓H␈ε∃(*␈↓ ¬∪␈ε∃TOTAL␈↓ ¬y␈ε∃STATE␈↓ ε←␈ε∃TAX␈↓ π#␈ε∃DEDUCTIONS*)
␈β
!␈↓ ↓H␈ε∃(*␈↓ ¬∪␈ε∃TOTAL␈↓ ¬y␈ε∃HEALTH␈↓ εp␈ε∃INSURANCE␈↓ λ~␈ε∃DEDUCTIONS*)
␈β
I␈↓ ↓H␈ε∃(*␈↓ ¬∪␈ε∃TOTAL␈↓ ¬y␈ε∃OVERALL␈↓ π↓␈ε∃DEDUCTIONS*)
␈β
q␈↓ ↓H␈ε∃(*␈↓ ¬∪␈ε∃TOTAL␈↓ ¬y␈ε∃NET␈↓ ε=␈ε∃PAY*)
␈β_␈↓ ↓H␈ε∃(*THE␈↓ α.␈ε∃DEDUCTIONS␈↓ βi␈ε∃ARE␈↓ ∧-␈ε∃COMPUTED␈↓ ¬F␈ε∃AS␈↓ ¬y␈ε∃FOLLOWS:*)
␈β>␈↓ ¬W␈ε7␈␈↓ πf␈ε7␈
␈β@␈↓ ↓H␈ε∃(*␈↓ ↓{␈ε∃TAXABLE␈↓ ββ␈ε∃INCOME␈↓ βz␈ε∃--␈↓ ∧-␈ε∃GROSS␈↓ ¬∪␈ε∃PAY␈↓ ¬x␈ε∃14*EXEMPTIONS␈↓ λ→␈ε∃11*)
␈βe␈↓ πx␈ε7␈
␈βg␈↓ ↓H␈ε∃(*␈↓ ↓{␈ε∃FEDERAL␈↓ ββ␈ε∃TAX␈↓ βz␈ε∃--␈↓ ∧-␈ε∃TAXABLE␈↓ ¬5␈ε∃INCOME*(0.14␈↓ π∩␈ε∃+␈↓ π4␈ε∃2.3E␈↓ λ→␈ε∃4*TAXABL␈α↓E␈↓ 	D␈ε∃INCOME)*)
␈β∂␈↓ ↓H␈ε∃(*␈↓ ↓{␈ε∃STATE␈↓ αa␈ε∃TAX␈↓ βz␈ε∃--␈↓ ∧-␈ε∃.31*FEDERAL␈↓ ¬y␈ε∃TAX*)
␈β7␈↓ ↓H␈ε∃(*␈↓ ↓{␈ε∃HEALTH␈↓ αr␈ε∃INSURANCE--␈↓ ∧>␈ε∃0.0␈↓ ¬∪␈ε∃IF␈↓ ¬F␈ε∃CODE␈↓ ε≠␈ε∃=␈↓ ε=␈ε∃1*)
␈β↑␈↓ ↓H␈ε∃(*␈↓ ∧>␈ε∃2.0␈↓ ¬∪␈ε∃IF␈↓ ¬F␈ε∃CODE␈↓ ε≠␈ε∃=␈↓ ε=␈ε∃2*)
␈β
ε␈↓ ↓H␈ε∃(*␈↓ ∧>␈ε∃7.5␈↓ ¬∪␈ε∃IF␈↓ ¬F␈ε∃CODE␈↓ ε≠␈ε∃=␈↓ ε=␈ε∃3*)
␈β
-␈↓ ↓H␈ε∃(*IF␈↓ α≥␈ε∃THE␈↓ αa␈ε∃TAXABLE␈↓ βi␈ε∃INCOME␈↓ ∧`␈ε∃IS␈↓ ¬∪␈ε∃NEGATIVE,␈↓ ε=␈ε∃NO␈↓ εp␈ε∃TAX␈↓ π4␈ε∃DEDUCTIONS␈↓ λo␈ε∃ARE␈↓ 	3␈ε∃MADE.␈↓ 
→␈ε∃*)
␈β
U␈↓ ↓H␈ε∃(*IF␈↓ α≥␈ε∃THE␈↓ αa␈ε∃TOTAL␈↓ βG␈ε∃DEDUCTIONS␈↓ ¬α␈ε∃EXCEED␈↓ ¬y␈ε∃THE␈↓ ε=␈ε∃GROSS␈↓ π#␈ε∃PAY,␈↓ πx␈ε∃NO␈↓ λ+␈ε∃DEDUCTIONS␈↓ 	f␈ε∃ARE*)
␈β
⎇␈↓ ↓H␈ε∃(*MADE␈↓ α?␈ε∃AND␈↓ ββ␈ε∃A␈↓ β%␈ε∃MESSAGE␈↓ ∧-␈ε∃IS␈↓ ∧`␈ε∃SENT␈↓ ¬5␈ε∃TO␈↓ ¬h␈ε∃THE␈↓ ε,␈ε∃TERMINAL.*)
␈β⊃_

␈β↓H␈↓ ↓$␈∧↓H↓$α
u
␈β↓J␈↓ ↓$␈∧↓J↓$Hα␈↓ α→␈∧↓Jα→Hα␈↓ ↔␈∧↓J↔Hα
␈β↓V␈↓ εβ␈ε>Sa␈α↓m␈α␈ple␈α∞P␈α↓r␈α␈og␈α␈rams
␈β↓\␈↓ ↓D␈ε"112
␈βα⊃␈↓ ↓$␈∧α⊃↓$α
u
␈βαP␈↓ ↓H␈ε∃PROGRAM␈↓ αP␈ε∃PAYROLL␈↓ βX␈ε∃(␈↓ βz␈ε∃INPUT*,␈↓ ¬α␈ε∃OUTPUT␈↓ ¬y␈ε∃)␈↓ ε≠␈ε∃;
␈ββ∨␈↓ ↓H␈ε∃VAR␈↓ αP␈ε∃NUMEMPLOYEE,␈↓ ε≠␈ε∃(*␈↓ εN␈ε∃NUMBER␈↓ πE␈ε∃OF␈↓ πx␈ε∃EMPLOYEES*)
␈ββG␈↓ αP␈ε∃SSNUMBER,␈↓ ε≠␈ε∃(*␈↓ εN␈ε∃SOCIAL␈↓ πE␈ε∃SECURITY␈↓ λ↑␈ε∃NUMBER*)
␈ββo␈↓ αP␈ε∃NUMEXEM,␈↓ ε≠␈ε∃(*␈↓ εN␈ε∃NUMBER␈↓ πE␈ε∃OF␈↓ πx␈ε∃EXEMPTIONS*)
␈β∧⊗␈↓ αP␈ε∃HEALTHCODE,␈↓ ε≠␈ε∃(*␈↓ εN␈ε∃HEALTH␈↓ πE␈ε∃INSURANCE␈↓ λo␈ε∃CODE*)
␈β∧>␈↓ αP␈ε∃I␈↓ ∧`␈ε∃:␈↓ ¬α␈ε∃INTEGER␈↓ ε
␈ε∃;
␈β∧e␈↓ αP␈ε∃PAYRATE,␈↓ ε≠␈ε∃(*␈↓ εN␈ε∃HOURLY␈↓ πE␈ε∃PAY␈↓ λ	␈ε∃RATE*)
␈β¬
␈↓ αP␈ε∃HOURS,␈↓ ε≠␈ε∃(*␈↓ εN␈ε∃HOURS␈↓ π4␈ε∃WORKED*)
␈β¬5␈↓ αP␈ε∃GROSSPAY,␈↓ ε≠␈ε∃(*␈↓ εN␈ε∃GROSS␈↓ π4␈ε∃PAY*)
␈β¬\␈↓ αP␈ε∃TAXABLEPAY,␈↓ ε≠␈ε∃(*␈↓ εN␈ε∃TAXABLE␈↓ πV␈ε∃PAY*)
␈βε∧␈↓ αP␈ε∃FEDTAX,␈↓ ε≠␈ε∃(*␈↓ εN␈ε∃FEDERAL␈↓ πV␈ε∃TAX*)
␈βε+␈↓ αP␈ε∃STATETAX,␈↓ ε≠␈ε∃(*␈↓ εN␈ε∃STATE␈↓ π4␈ε∃TAX*)
␈βεS␈↓ αP␈ε∃SSTAX,␈↓ ε≠␈ε∃(*␈↓ εN␈ε∃SOCIAL␈↓ πE␈ε∃SECURITY␈↓ λ↑␈ε∃TAX*)
␈βε{␈↓ αP␈ε∃HEALTHINS,␈↓ ε≠␈ε∃(*␈↓ εN␈ε∃HEALTH␈↓ πE␈ε∃INSURANCE␈↓ λo␈ε∃WITHHOLDING*)
␈βπ"␈↓ αP␈ε∃TOTALDEDUCT,␈↓ ε≠␈ε∃(*␈↓ εN␈ε∃TOTAL␈↓ π4␈ε∃OF␈↓ πg␈ε∃DEDUCTIONS*)
␈βπJ␈↓ αP␈ε∃NETPAY,␈↓ ε≠␈ε∃(*␈↓ εN␈ε∃NET␈↓ π∩␈ε∃PAY*)
␈βπq␈↓ αP␈ε∃SUMGROSSPAY,SUMFEDTAX,␈↓ ε≠␈ε∃(*␈↓ εN␈ε∃SUMS␈↓ π#␈ε∃OVER␈↓ πx␈ε∃ALL␈↓ λ<␈ε∃EMPLOYEES/LDOTS*)
␈βλ→␈↓ αP␈ε∃SUMSTATETAX,SUMSSTAX,
␈βλA␈↓ αP␈ε∃SUMHEALTHINS,SUMTOTALDEDUCT,
␈βλh␈↓ αP␈ε∃SUMNETPAY␈↓ ∧`␈ε∃:␈↓ ¬α␈ε∃REAL␈↓ ¬W␈ε∃;
␈β	7␈↓ ↓H␈ε∃BEGIN
␈β
π␈↓ ↓H␈ε∃(*␈↓ ↓{␈ε∃READ␈↓ αP␈ε∃NUMBER␈↓ βG␈ε∃OF␈↓ βz␈ε∃EMPLOYEES␈↓ ¬$␈ε∃AND␈↓ ¬h␈ε∃INITIALIZE␈↓ π#␈ε∃*)
␈β
.␈↓ ↓H␈ε∃READ␈↓ α≥␈ε∃(␈↓ α?␈ε∃NUMEMPLOYEE␈↓ ∧␈ε∃)␈↓ ∧-␈ε∃;
␈β
V␈↓ ↓H␈ε∃SUMGROSSPAY␈↓ β∀␈ε∃:=␈↓ βG␈ε∃0.0␈↓ ∧␈ε∃;
␈β
⎇␈↓ ↓H␈ε∃SUMFEDTAX␈↓ αr␈ε∃:=␈↓ β%␈ε∃0.0␈↓ βi␈ε∃;
␈β%␈↓ ↓H␈ε∃SUMSTATETAX␈↓ β∀␈ε∃:=␈↓ βG␈ε∃0.0␈↓ ∧␈ε∃;
␈βM␈↓ ↓H␈ε∃SUMSSTAX␈↓ αa␈ε∃:=␈↓ β∀␈ε∃0.0␈↓ βX␈ε∃;
␈βt␈↓ ↓H␈ε∃SUMHEALTHINS␈↓ β%␈ε∃:=␈↓ βX␈ε∃0.0␈↓ ∧≤␈ε∃;
␈β≤␈↓ ↓H␈ε∃SUMTOTALDEDUCT␈↓ βG␈ε∃:=␈↓ βz␈ε∃0.0␈↓ ∧>␈ε∃;
␈βC␈↓ ↓H␈ε∃SUMNETPAY␈↓ αr␈ε∃:=␈↓ β%␈ε∃0.0␈↓ βi␈ε∃;
␈β⊃_

␈β↓H␈↓ ↓$␈∧↓H↓$α
u
␈β↓J␈↓ ↓$␈∧↓J↓$Hα␈↓ "␈∧↓J"Hα␈↓ ↔␈∧↓J↔Hα
␈β↓V␈↓ ¬ε␈ε>Sampl␈α␈e␈α∂Pro␈α␈grams
␈β↓\␈↓ B␈ε"113
␈βα⊃␈↓ ↓$␈∧α⊃↓$α
u
␈βαP␈↓ ↓H␈ε∃(*␈↓ ↓{␈ε∃PROCESS␈↓ ββ␈ε∃EMPLOYEE'S␈↓ ∧>␈ε∃DATA␈↓ ¬∪␈ε∃*)
␈βαx␈↓ ↓H␈ε∃FOR␈↓ α␈ε∃I␈↓ α.␈ε∃:=␈↓ αa␈ε∃1␈↓ ββ␈ε∃TO␈↓ β6␈ε∃NUMEMPLOYEE␈↓ ¬α␈ε∃DO
␈ββ∨␈↓ ↓{␈ε∃BEGIN
␈ββo␈↓ ↓{␈ε∃(*␈↓ α.␈ε∃READ␈↓ ββ␈ε∃EMPLOYEE'S␈↓ ∧>␈ε∃DATA␈↓ ¬∪␈ε∃*)
␈β∧⊗␈↓ ↓{␈ε∃READ␈↓ αP␈ε∃(␈↓ αr␈ε∃SSNUMBER,␈↓ ∧≤␈ε∃PAYRATE,␈↓ ¬5␈ε∃NUMEXEM,␈↓ εN␈ε∃HEALTHCODE,␈↓ λ~␈ε∃HOURS␈↓ 	␈ε∃)␈↓ 	"␈ε∃;
␈β∧e␈↓ ↓{␈ε∃(*␈↓ α.␈ε∃CHECK␈↓ β∀␈ε∃DATA␈↓ βi␈ε∃FOR␈↓ ∧-␈ε∃VALIDITY␈↓ ¬F␈ε∃*)
␈β¬
␈↓ ↓{␈ε∃IF␈↓ α.␈ε∃(␈↓ αP␈ε∃SSNUMBER␈↓ βi␈ε∃<␈↓ ∧␈ε∃100000000␈↓ ¬5␈ε∃)␈↓ ¬W␈ε∃OR
␈β¬5␈↓ α.␈ε∃(␈↓ αP␈ε∃SSNUMBER␈↓ βi␈ε∃>␈↓ ∧␈ε∃999999999␈↓ ¬5␈ε∃)␈↓ ¬W␈ε∃OR
␈β¬\␈↓ α.␈ε∃(␈↓ αP␈ε∃PAYRATE␈↓ βX␈ε∃<␈↓ βz␈ε∃0.0␈↓ ∧>␈ε∃)␈↓ ∧`␈ε∃OR
␈βε∧␈↓ α.␈ε∃(␈↓ αP␈ε∃NUMEXEM␈↓ βX␈ε∃<␈↓ βz␈ε∃0␈↓ ∧≤␈ε∃)␈↓ ∧>␈ε∃OR
␈βε+␈↓ α.␈ε∃(␈↓ αP␈ε∃HEALTHCODE␈↓ ∧␈ε∃<␈↓ ∧-␈ε∃1␈↓ ∧O␈ε∃)␈↓ ∧q␈ε∃OR
␈βεS␈↓ α.␈ε∃(␈↓ αP␈ε∃HEALTHCODE␈↓ ∧␈ε∃>␈↓ ∧-␈ε∃3␈↓ ∧O␈ε∃)␈↓ ∧q␈ε∃OR
␈βε{␈↓ α.␈ε∃(␈↓ αP␈ε∃HOURS␈↓ β6␈ε∃<␈↓ βX␈ε∃0.0␈↓ ∧≤␈ε∃)
␈βπ"␈↓ α?␈ε∃THEN␈↓ β∀␈ε∃WRITELN(␈↓ ∧-␈ε∃TTY,␈↓ ¬α␈ε∃'INVALID␈↓ ε≠␈ε∃DATA␈↓ εp␈ε∃ON␈↓ π#␈ε∃LINE',␈↓ λ~␈ε∃I:4␈↓ λ↑␈ε∃)
␈βπq␈↓ ↓{␈ε∃ELSE
␈βλ→␈↓ α?␈ε∃BEGIN
␈βλA␈↓ α?␈ε∃(*␈↓ αr␈ε∃CALCULATE␈↓ ∧≤␈ε∃GROSS␈↓ ¬α␈ε∃PAY␈↓ ¬F␈ε∃*)
␈βλh␈↓ α?␈ε∃IF␈↓ αr␈ε∃HOURS␈↓ βX␈ε∃<=␈↓ ∧␈ε∃40.0␈↓ ∧q␈ε∃THEN
␈β	⊂␈↓ ββ␈ε∃GROSSPAY␈↓ ∧≤␈ε∃:=␈↓ ∧O␈ε∃HOURS*PAYRATE
␈β	7␈↓ α?␈ε∃ELSE
␈β	←␈↓ ββ␈ε∃IF␈↓ β6␈ε∃HOURS␈↓ ∧≤␈ε∃<=␈↓ ∧O␈ε∃54.0␈↓ ¬$␈ε∃THEN
␈β
π␈↓ βG␈ε∃GROSSPAY␈↓ ∧`␈ε∃:=␈↓ ¬∪␈ε∃40.0*PAYRATE␈↓ εp␈ε∃+␈↓ π∩␈ε∃(HOURS-40.0)*1.5*PAYRATE
␈β
.␈↓ ββ␈ε∃ELSE␈↓ βX␈ε∃GROSSPAY␈↓ ∧q␈ε∃:=␈↓ ¬$␈ε∃61.0*PAYRATE␈↓ π↓␈ε∃;
␈β
⎇␈↓ α?␈ε∃(*␈↓ αr␈ε∃SUM␈↓ β6␈ε∃GROSS␈↓ ∧≤␈ε∃PAY␈↓ ∧`␈ε∃*)
␈β%␈↓ α?␈ε∃SUMGROSSPAY␈↓ ∧␈ε∃:=␈↓ ∧>␈ε∃SUMGROSSPAY␈↓ ε
␈ε∃+␈↓ ε,␈ε∃GROSSPAY␈↓ πE␈ε∃;
␈βM␈↓ α?␈ε∃(*␈↓ αr␈ε∃CALCULATE␈↓ ∧≤␈ε∃DEDUCTIONS␈↓ ¬W␈ε∃*)
␈βt␈↓ α?␈ε∃TAXABLEPAY␈↓ βz␈ε∃:=␈↓ ∧-␈ε∃GROSSPAY-14.0*NUMEXEM-11.0␈↓ πx␈ε∃;
␈β≤␈↓ α?␈ε∃IF␈↓ αr␈ε∃TAXABLEPAY␈↓ ∧-␈ε∃<␈↓ ∧O␈ε∃0.0␈↓ ¬∪␈ε∃THEN␈↓ ¬h␈ε∃TAXABLEPAY␈↓ π#␈ε∃:=␈↓ πV␈ε∃0.0␈↓ λ~␈ε∃;
␈βC␈↓ α?␈ε∃FEDTAX␈↓ β6␈ε∃:=␈↓ βi␈ε∃TAXABLEPAY␈↓ ¬$␈ε∃*␈↓ ¬F␈ε∃(␈↓ ¬h␈ε∃0.14␈↓ ε=␈ε∃+␈↓ ε←␈ε∃2.3E-4␈↓ πV␈ε∃*␈↓ πx␈ε∃TAXABLEPAY␈↓ 	3␈ε∃)␈↓ 	U␈ε∃;
␈βk␈↓ α?␈ε∃STATETAX␈↓ βX␈ε∃:=␈↓ ∧␈ε∃0.31␈↓ ∧`␈ε∃*␈↓ ¬α␈ε∃FEDTAX␈↓ ¬y␈ε∃;
␈β
∪␈↓ α?␈ε∃SSTAX␈↓ β%␈ε∃:=␈↓ βX␈ε∃0.077␈↓ ∧>␈ε∃*␈↓ ∧`␈ε∃GROSSPAY␈↓ ¬y␈ε∃;
␈β
:␈↓ α?␈ε∃IF␈↓ αr␈ε∃SSTAX␈↓ βX␈ε∃>␈↓ βz␈ε∃16.7␈↓ ∧O␈ε∃THEN␈↓ ¬$␈ε∃SSTAX␈↓ ε
␈ε∃:=␈↓ ε=␈ε∃16.7␈↓ π∩␈ε∃;
␈β⊃_

␈β↓H␈↓ ↓$␈∧↓H↓$α
u
␈β↓J␈↓ ↓$␈∧↓J↓$Hα␈↓ α→␈∧↓Jα→Hα␈↓ ↔␈∧↓J↔Hα
␈β↓V␈↓ ε↓␈ε>Sampl␈α␈e␈α∂Pro␈α␈grams
␈β↓\␈↓ ↓D␈ε"114
␈βα⊃␈↓ ↓$␈∧α⊃↓$α
u
␈βαN␈↓ α?␈ε∃IF␈↓ αr␈ε∃HEALTHCODE␈↓ ∧-␈ε∃=␈↓ ∧O␈ε∃1␈↓ ¬α␈ε∃THEN
␈βαu␈↓ ββ␈ε∃HEALTHINS␈↓ ∧-␈ε∃:=␈↓ ∧`␈ε∃0.0
␈ββ≥␈↓ α?␈ε∃ELSE
␈ββD␈↓ ββ␈ε∃IF␈↓ β6␈ε∃HEALTHCODE␈↓ ∧q␈ε∃=␈↓ ¬∪␈ε∃2␈↓ ¬F␈ε∃THEN
␈ββl␈↓ βG␈ε∃HEALTHINS␈↓ ∧q␈ε∃:=␈↓ ¬$␈ε∃2.0
␈β∧∀␈↓ ββ␈ε∃ELSE␈↓ βX␈ε∃HEALTHINS␈↓ ¬α␈ε∃:=␈↓ ¬5␈ε∃7.5␈↓ ¬y␈ε∃;
␈β∧c␈↓ α?␈ε∃TOTALDEDUCT␈↓ ∧␈ε∃:=␈↓ ∧>␈ε∃FEDTAX␈↓ ¬5␈ε∃+␈↓ ¬W␈ε∃STATETAX␈↓ εp␈ε∃+␈↓ π∩␈ε∃SSTAX␈↓ πx␈ε∃+␈↓ λ~␈ε∃HEALTHINS␈↓ 	D␈ε∃;
␈βλ(␈↓ α?␈ε∃(*␈↓ αr␈ε∃CHECK␈↓ βX␈ε∃IF␈↓ ∧␈ε∃EARNINGS␈↓ ¬$␈ε∃COVER␈↓ ε
␈ε∃DEDUCTIONS␈↓ πE␈ε∃AND␈↓ λ	␈ε∃CALCULATE␈↓ 	3␈ε∃NET␈↓ 	w␈ε∃PAY␈↓ 
;␈ε∃*)
␈βλP␈↓ α?␈ε∃(*␈↓ αr␈ε∃ALSO␈↓ βG␈ε∃SUM␈↓ ∧␈ε∃THE␈↓ ∧O␈ε∃DEDUCTIONS␈↓ ε
␈ε∃AND␈↓ εN␈ε∃THE␈↓ π∩␈ε∃NET␈↓ πV␈ε∃PAY␈↓ λ~␈ε∃*)
␈β	∨␈↓ α?␈ε∃IF␈↓ αr␈ε∃TOTALDEDUCT␈↓ ∧>␈ε∃>␈↓ ∧`␈ε∃GROSSPAY␈↓ ε
␈ε∃THEN
␈β	F␈↓ ββ␈ε∃BEGIN
␈β	n␈↓ ββ␈ε∃WRITELN␈↓ ∧␈ε∃(␈↓ ∧-␈ε∃TTY,␈↓ ¬α␈ε∃'␈↓ ¬$␈ε∃EMPLOYEE␈↓ ε=␈ε∃NUMBER␈↓ π4␈ε∃',␈↓ πg␈ε∃SSNUMBER:9␈↓ 	"␈ε∃)␈↓ 	D␈ε∃;
␈β
⊗␈↓ ββ␈ε∃WRITELN␈↓ ∧␈ε∃(␈↓ ∧-␈ε∃TTY,␈↓ ¬α␈ε∃'␈↓ ¬$␈ε∃EARNINGS␈↓ ε=␈ε∃DO␈↓ εp␈ε∃NOT␈↓ π4␈ε∃COVER␈↓ λ~␈ε∃WITHHOLDINGS'␈↓ 
λ␈ε∃)␈↓ 
*␈ε∃;
␈β
=␈↓ ββ␈ε∃WRITELN␈↓ ∧␈ε∃(␈↓ ∧-␈ε∃TTY,␈↓ ¬α␈ε∃'␈↓ ¬$␈ε∃NO␈↓ ¬W␈ε∃WITHHOLDINGS␈↓ π4␈ε∃MADE␈↓ λ	␈ε∃THIS␈↓ λ↑␈ε∃WEEK.'␈↓ 	U␈ε∃)␈↓ 	w␈ε∃;
␈β
e␈↓ ββ␈ε∃WRITELN␈↓ ∧␈ε∃(␈↓ ∧-␈ε∃TTY␈↓ ∧q␈ε∃)␈↓ ¬∪␈ε∃;
␈β␈↓ ββ␈ε∃NETPAY␈↓ βz␈ε∃:=␈↓ ∧-␈ε∃GROSSPAY
␈β4␈↓ ββ␈ε∃END
␈β\␈↓ α?␈ε∃ELSE
␈ββ␈↓ ββ␈ε∃BEGIN
␈β+␈↓ ββ␈ε∃NETPAY␈↓ βz␈ε∃:=␈↓ ∧-␈ε∃GROSSPAY-TOTALDEDUCT␈↓ π∩␈ε∃;
␈βR␈↓ ββ␈ε∃SUMFEDTAX␈↓ ∧-␈ε∃:=␈↓ ∧`␈ε∃SUMFEDTAX␈↓ ε
␈ε∃+␈↓ ε,␈ε∃FEDTAX␈↓ π#␈ε∃;
␈βz␈↓ ββ␈ε∃SUMSTATETAX␈↓ ∧O␈ε∃:=␈↓ ¬α␈ε∃SUMSTATETAX␈↓ εN␈ε∃+␈↓ εp␈ε∃STATETAX␈↓ λ	␈ε∃;
␈β
"␈↓ ββ␈ε∃SUMSSTAX␈↓ ∧≤␈ε∃:=␈↓ ∧O␈ε∃SUMSSTAX␈↓ ¬h␈ε∃+␈↓ ε
␈ε∃SSTAX␈↓ εp␈ε∃;
␈β
I␈↓ ββ␈ε∃SUMHEALTHINS␈↓ ∧`␈ε∃:=␈↓ ¬∪␈ε∃SUMHEALTHINS␈↓ εp␈ε∃+␈↓ π∩␈ε∃HEALTHINS␈↓ λ<␈ε∃;
␈β
q␈↓ ββ␈ε∃SUMTOTALDEDUCT␈↓ ¬α␈ε∃:=␈↓ ¬5␈ε∃SUMTOTALDEDUCT␈↓ π4␈ε∃+␈↓ πV␈ε∃TOTALDEDUCT
␈β∞_␈↓ ββ␈ε∃END;
␈β∞@␈↓ α?␈ε∃SUMNETPAY␈↓ βi␈ε∃:=␈↓ ∧≤␈ε∃SUMNETPAY␈↓ ¬F␈ε∃+␈↓ ¬h␈ε∃NETPAY␈↓ ε←␈ε∃;
␈β∞h␈↓ α?␈ε∃WRITELN␈↓ βG␈ε∃(␈↓ βi␈ε∃SSNUMBER␈↓ ¬α␈ε∃:9␈↓ ¬5␈ε∃,␈↓ ¬W␈ε∃NETPAY␈↓ εN␈ε∃:14␈↓ π∩␈ε∃:2␈↓ πE␈ε∃)
␈β∂∂␈↓ α?␈ε∃END␈↓ β∀␈ε∃(*␈↓ βG␈ε∃ELSE␈↓ ∧≤␈ε∃CLAUSE␈↓ ¬∪␈ε∃*)
␈β∂7␈↓ ↓{␈ε∃END␈↓ α?␈ε∃;␈↓ αr␈ε∃(*␈↓ β%␈ε∃FOR␈↓ βi␈ε∃LOOP␈↓ ∧>␈ε∃*)
␈β⊃_

␈β↓H␈↓ ↓$␈∧↓H↓$α
u
␈β↓J␈↓ ↓$␈∧↓J↓$Hα␈↓ "␈∧↓J"Hα␈↓ ↔␈∧↓J↔Hα
␈β↓V␈↓ ¬ε␈ε>Sampl␈α␈e␈α∂Pro␈α␈grams
␈β↓\␈↓ B␈ε"115
␈βα⊃␈↓ ↓$␈∧α⊃↓$α
u
␈βαa␈↓ ↓H␈ε∃(*␈↓ ↓{␈ε∃SEND␈↓ αP␈ε∃SUMMARY␈↓ βX␈ε∃REPORT␈↓ ∧O␈ε∃TO␈↓ ¬α␈ε∃TERMINAL␈↓ ε≠␈ε∃*)
␈ββ1␈↓ ↓H␈ε∃WRITELN␈↓ αP␈ε∃(␈↓ αr␈ε∃TTY,␈↓ βG␈ε∃'␈↓ βi␈ε∃SUMMARY␈↓ ∧q␈ε∃REPORT␈↓ ¬h␈ε∃:␈↓ ε
␈ε∃'␈↓ ε,␈ε∃)␈↓ εN␈ε∃;
␈ββX␈↓ ↓H␈ε∃WRITELN␈↓ αP␈ε∃(␈↓ αr␈ε∃TTY,␈↓ βG␈ε∃'␈↓ βi␈ε∃-----------------'␈↓ ε,␈ε∃)␈↓ εN␈ε∃;
␈β∧␈↓ ↓H␈ε∃WRITELN␈↓ αP␈ε∃(␈↓ αr␈ε∃TTY,␈↓ βG␈ε∃'␈↓ βi␈ε∃TOTAL␈↓ ∧O␈ε∃GROSS␈↓ ¬5␈ε∃PAY'␈↓ ε
␈ε∃:40,␈↓ ε←␈ε∃SUMGROSSPAY␈↓ λ+␈ε∃:20␈↓ λo␈ε∃:2␈↓ 	"␈ε∃)␈↓ 	D␈ε∃;
␈β∧'␈↓ ↓H␈ε∃WRITELN␈↓ αP␈ε∃(␈↓ αr␈ε∃TTY,␈↓ βG␈ε∃'␈↓ βi␈ε∃FEDERAL␈↓ ∧q␈ε∃INCOME␈↓ ¬h␈ε∃TAX␈↓ ε,␈ε∃DEDUCTIONS'␈↓ πx␈ε∃:40,␈↓ λM␈ε∃SUMFEDTAX␈↓ 	w␈ε∃:20␈↓ 
;␈ε∃:2␈↓ 
n␈ε∃)␈↓ ⊂␈ε∃;
␈β∧O␈↓ ↓H␈ε∃WRITELN␈↓ αP␈ε∃(␈↓ αr␈ε∃TTY,␈↓ βG␈ε∃'␈↓ βi␈ε∃STATE␈↓ ∧O␈ε∃INCOME␈↓ ¬F␈ε∃TAX␈↓ ε
␈ε∃DEDUCTIONS'␈↓ πV␈ε∃:40,␈↓ λ+␈ε∃SUMSTATETAX␈↓ 	w␈ε∃:20␈↓ 
;␈ε∃:2␈↓ 
n␈ε∃)␈↓ ⊂␈ε∃;
␈β∧w␈↓ ↓H␈ε∃WRITELN␈↓ αP␈ε∃(␈↓ αr␈ε∃TTY,␈↓ βG␈ε∃'␈↓ βi␈ε∃SOCIAL␈↓ ∧`␈ε∃SECURITY␈↓ ¬y␈ε∃DEDUCTIONS'␈↓ πE␈ε∃:40,␈↓ λ~␈ε∃SUMSSTAX␈↓ 	3␈ε∃:20␈↓ 	w␈ε∃:2␈↓ 
*␈ε∃)␈↓ 
L␈ε∃;
␈β¬≡␈↓ ↓H␈ε∃WRITELN␈↓ αP␈ε∃(␈↓ αr␈ε∃TTY,␈↓ βG␈ε∃'␈↓ βi␈ε∃HEALTH␈↓ ∧`␈ε∃INSURANCE␈↓ ε
␈ε∃DEDUCTIONS'␈↓ πV␈ε∃:40,␈↓ λ+␈ε∃SUMHEALTHINS␈↓ 
λ␈ε∃:20␈↓ 
L␈ε∃:2␈↓ 
␈␈ε∃)␈↓ !␈ε∃;
␈β¬F␈↓ ↓H␈ε∃WRITELN␈↓ αP␈ε∃(␈↓ αr␈ε∃TTY,␈↓ βG␈ε∃'␈↓ βi␈ε∃TOTAL␈↓ ∧O␈ε∃DEDUCTIONS'␈↓ ε≠␈ε∃:40,␈↓ εp␈ε∃SUMTOTALDEDUCT␈↓ λo␈ε∃:20␈↓ 	3␈ε∃:2␈↓ 	f␈ε∃)␈↓ 
λ␈ε∃;
␈β¬m␈↓ ↓H␈ε∃WRITELN␈↓ αP␈ε∃(␈↓ αr␈ε∃TTY,␈↓ βG␈ε∃'␈↓ βi␈ε∃TOTAL␈↓ ∧O␈ε∃NET␈↓ ¬∪␈ε∃PAY'␈↓ ¬h␈ε∃:40,␈↓ ε=␈ε∃SUMNETPAY␈↓ πg␈ε∃:20␈↓ λ+␈ε∃:2␈↓ λ↑␈ε∃)
␈βε∃␈↓ ↓H␈ε∃END.
␈β⊃_

␈β↓H␈↓ ↓$␈∧↓H↓$α
u
␈β↓J␈↓ ↓$␈∧↓J↓$Hα␈↓ α→␈∧↓Jα→Hα␈↓ ↔␈∧↓J↔Hα
␈β↓V␈↓ βs␈ε>I␈α↓n␈α␈tro␈α␈ducti␈α␈on␈α∞to␈α∞th␈α␈e␈α∂TO␈α␈P␈α↓S-20␈α∞System␈α∞at␈α∞L␈α␈OTS
␈β↓\␈↓ ↓D␈ε"116
␈βα⊃␈↓ ↓$␈∧α⊃↓$α
u
␈βα\␈↓ ↓H␈ε>APP␈α↓ENDIX␈α∂A.␈α∂Int␈α␈rod␈α␈uctio␈α␈n␈α∞to␈α∞th␈α␈e␈α∂TO␈α␈P␈α↓S-20␈α∞System␈α∞at␈α∂L␈α␈O␈α␈TS.
␈ββ!␈↓ α␈ε"Ho␈α␈w␈αto␈αdo␈αsome␈αcomm␈α↓on␈αtasks␈αat␈αL␈α␈OTS.
␈ββM␈↓ α␈ε"Notation:␈αA␈↓ ∧N␈ε"means␈α
y␈α␈ou␈αsh␈α↓ould␈α
h␈α↓old␈αdo␈α␈wn␈α
the␈↓ 	.␈ε"(pron␈α↓ounced␈α
con␈α␈trol)
␈ββO␈↓ βR␈ε5CTRL␈α␈/C␈↓ λX␈ε5CTRL
␈ββy␈↓ ↓H␈ε"k␈α␈ey␈αλon␈α	the␈αλk␈α␈eyboard␈α	while␈αλt␈α␈yping␈α	the␈αλletter␈α	C.␈α	The␈↓ πw␈ε"sign␈α	means␈αλthe␈α	ESC␈αλ(pron␈α↓ounced
␈ββ{␈↓ πY␈εβe
␈β∧∧␈↓ π↑␈εβs
␈β∧
␈↓ πc␈εβc
␈β∧$␈↓ ↓H␈ε"escape)␈αk␈α␈ey.␈α⊂The␈↓ βz␈ε"sym␈α␈bol␈αis␈αthe␈αRETURN␈αk␈α␈ey.␈α⊂Underlined␈αcharacters␈αare␈αthe␈αones
␈β∧9␈↓ β↑␈εαJ
␈β∧O␈↓ ↓H␈ε"y␈α␈ou␈α
t␈α␈ype;␈αy␈α␈ou␈α
ma␈α␈y␈αsometimes␈αha␈α␈v␈α␈e␈αto␈α
w␈α␈ait␈αfor␈αthe␈α
others␈αto␈αbe␈αautomatically␈α
prin␈α␈ted
␈β∧z␈↓ ↓H␈ε"by␈αthe␈αcomputer.
␈β¬K␈↓ ↓Z␈ε6∂␈↓ ↓}␈ε"T␈α⎇o␈αlog␈αin:
␈β¬y␈↓ αP␈ε5CTRL/C
␈βε≤␈↓ αP␈∧ε≤αPαr
␈βε&␈↓ αP␈ε5system␈α∪mes␈α␈sages
␈βεE␈↓ ∧l␈∧εE∧lα
␈βεP␈↓ αP␈ε6|␈↓ βs␈ε/user-name␈↓ ¬)␈ε/passw␈α␈ord
␈βεR␈↓ αl␈ε5LOGIN␈↓ βK␈εβe␈↓ ¬∪␈εβe
␈βε\␈↓ βP␈εβs␈↓ ¬→␈εβs
␈βεe␈↓ βU␈εβc␈↓ ¬≥␈εβc␈↓ ε8␈εαJ
␈βε|␈↓ αl␈∧ε|αlαβ\
␈βε⎇␈↓ α␈ε6)␈↓ αP␈ε/user-name␈ε"␈αis␈αy␈α␈our␈αname␈αas␈αkn␈α↓o␈α␈wn␈αto␈αthe␈αsystem.
␈βπ)␈↓ α␈ε6)␈↓ αP␈ε/passw␈α␈ord␈ε"␈αis␈αy␈α␈our␈αpassw␈α␈ord.
␈βπV␈↓ ↓Z␈ε6∂␈↓ ↓}␈ε"T␈α⎇o␈αlog␈αout:
␈βλα␈↓ αP␈ε6|
␈βλ∧␈↓ αl␈ε5LOGOUT
␈βλ↔␈↓ β↑␈εαJ
␈βλ/␈↓ αl␈∧λ/αlα↓α
␈βλ1␈↓ αP␈ε5system␈α∪mes␈α␈sages
␈βλP␈↓ ∧l␈∧λP∧lα
␈βλ\␈↓ ↓Z␈ε6∂␈↓ ↓}␈ε"T␈α⎇o␈αdelete␈αa␈αpartially␈αt␈α␈yped␈αline:
␈β	
␈↓ αP␈ε5CTRL/U
␈β	,␈↓ αP␈∧	,αPαr
␈β	5␈↓ ↓Z␈ε6∂␈↓ ↓}␈ε"T␈α⎇o␈αdelete␈αthe␈αlast␈αcharacter␈αy␈α␈ou␈αt␈α␈yped:
␈β	c␈↓ β)␈ε5or␈α∪DEL␈α∪or␈α∩RUB,␈α∪depe␈α␈nding␈α∪on␈α∪y␈α␈our␈α∪keyboa␈α␈rd
␈β	d␈↓ αP␈εβBACK
␈β	v␈↓ αP␈εβSPACE
␈β

␈↓ αP␈∧

αPαε`
␈β
∞␈↓ ↓Z␈ε6∂␈↓ ↓}␈ε"T␈α⎇o␈αt␈α␈ype␈αin␈αa␈αPascal␈αprogram␈αor␈αother␈αmaterial␈αas␈αa␈αnew␈α|le:
␈β
:␈↓ αP␈ε6|␈↓ ∧ε␈ε/|le
␈β
<␈↓ αl␈ε5CREATE␈↓ β↑␈εβe
␈β
F␈↓ βc␈εβs
␈β
O␈↓ βg␈εβc␈↓ ∧4␈εαJ
␈β
f␈↓ αl␈∧
fαlα↓X
␈β
g␈↓ α␈ε6)␈↓ αP␈ε/|le␈ε"␈αis␈αy␈α␈our␈α|le␈αname
␈β∪␈↓ α␈ε6)␈↓ αP␈ε"The␈αsystem␈αwill␈αech␈α↓o␈αy␈α␈our␈α|le␈αname␈αand␈αthen␈αaccept␈αy␈α␈our␈αtext
␈β@␈↓ βB␈ε/y␈α␈our␈α|rst␈αline
␈βB␈↓ αP␈ε500100
␈βU␈↓ ¬⊗␈εαJ
␈βl␈↓ β/␈∧lβ/α↓w␈↓ βB␈ε/y␈α␈our␈αsecond␈αline
␈βn␈↓ αP␈ε500200
␈β↓␈↓ ¬@␈εαJ
␈β→␈↓ β/␈∧→β/αα!
␈β≠␈↓ αP␈ε5.
␈β:␈↓ αc␈∧:αcα
␈βG␈↓ αP␈ε5.
␈βg␈↓ αc␈∧gαcα
␈βt␈↓ αP␈ε5.
␈β
∪␈↓ αc␈∧
∪αcα
␈β
≡␈↓ ∧3␈ε/y␈α␈our␈αlast␈αline
␈β
 ␈↓ αP␈ε5line␈α∪numbe␈α␈r
␈β
3␈↓ ε↓␈εαJ
␈β
K␈↓ ∧ ␈∧
K∧ α↓q
␈β
M␈↓ αP␈ε5line␈α∪numbe␈α␈r␈↓ ∧ ␈εβe
␈β
V␈↓ ∧&␈εβs
␈β
`␈↓ ∧*␈εβc
␈β
w␈↓ ∧ ␈∧
w∧ α⊗
␈β
z␈↓ αP␈ε5*␈↓ αc␈ε5E
␈β∞␈↓ αv␈εαJ
␈β∞$␈↓ αP␈ε6|␈↓ αc␈∧∞$αcα#
␈β∞E␈↓ αl␈∧∞Eαlα
␈β∞Q␈↓ ↓Z␈ε6∂␈↓ ↓}␈ε"T␈α⎇o␈α∞scrap␈α∞the␈α∞wh␈α↓ole␈α∞thing␈α
in␈α∞the␈α∞middle␈α∞and␈α∞start␈α∞o␈α␈v␈α␈er,␈α∂use␈α∞the␈↓ 
.␈ε"command␈α∞to
␈β∞S␈↓ 	{␈ε5EQ
␈β∞|␈↓ α4␈ε"exit␈αinstead␈αof␈αthe␈↓ ∧␈␈ε"command.␈α⊂That␈αis:
␈β∞}␈↓ ∧`␈ε5E
␈β∂(␈↓ ∧3␈ε/y␈α␈our␈αlast␈αline
␈β∂*␈↓ αP␈ε5line␈α∪numbe␈α␈r
␈β∂=␈↓ ε↓␈εαJ
␈β∂U␈↓ ∧ ␈∧∂U∧ α↓q
␈β⊃∨

␈β↓H␈↓ ↓$␈∧↓H↓$α
u
␈β↓J␈↓ ↓$␈∧↓J↓$Hα␈↓ "␈∧↓J"Hα␈↓ ↔␈∧↓J↔Hα
␈β↓V␈↓ αx␈ε>I␈α↓n␈α␈tro␈α␈ducti␈α␈on␈α∞to␈α∞th␈α␈e␈α∂TO␈α␈P␈α↓S-20␈α∞System␈α∞at␈α∞L␈α␈OTS
␈β↓\␈↓ B␈ε"117
␈βα⊃␈↓ ↓$␈∧α⊃↓$α
u
␈βαN␈↓ αP␈ε5line␈α∪numbe␈α␈r␈↓ ∧ ␈εβe
␈βαW␈↓ ∧&␈εβs
␈βαa␈↓ ∧*␈εβc
␈βαx␈↓ ∧ ␈∧αx∧ α⊗
␈βαz␈↓ αP␈ε5*␈↓ αc␈ε5EQ
␈ββ
␈↓ β	␈εαJ
␈ββ$␈↓ αP␈ε6|␈↓ αc␈∧β$αcα6␈↓ βq␈ε/etc.
␈ββ&␈↓ αl␈ε5CREATE
␈ββF␈↓ αl␈∧βFαlα↓=
␈ββQ␈↓ ↓Z␈ε6∂␈↓ ↓}␈ε"T␈α⎇o␈αrun␈αa␈αPascal␈αprogram␈α(its␈αname␈αsh␈α↓ould␈αend␈αin␈α.PGO)
␈ββ⎇␈↓ αP␈ε6|␈↓ ∧,␈ε/|le
␈ββ␈␈↓ αl␈ε5EXECUTE␈↓ βq␈εβe
␈β∧λ␈↓ βv␈εβs
␈β∧∩␈↓ βz␈εβc␈↓ ∧Z␈εαJ
␈β∧)␈↓ αl␈∧∧)αlα↓}
␈β∧+␈↓ αP␈ε5system␈α∪mes␈α␈sages
␈β∧K␈↓ ∧l␈∧∧K∧lα
␈β∧X␈↓ αP␈ε5output␈α∪fro␈α␈m␈α∪your␈α∪pro␈α␈gram
␈β∧w␈↓ ε⊗␈∧∧wε⊗α
␈β¬∧␈↓ αP␈ε5system␈α∪mes␈α␈sages␈α∪abou␈α␈t␈α∪terminat␈α␈ion␈α∪of␈α∪you␈α␈r␈α∪program
␈β¬#␈↓ 	o␈∧¬#	oα
␈β¬.␈↓ αP␈ε6|
␈β¬P␈↓ αl␈∧¬Pαlα
␈β¬Z␈↓ ↓Z␈ε6∂␈↓ ↓}␈ε"T␈α⎇o␈αstop␈αy␈α␈our␈αprogram␈αwhile␈αit␈αis␈αrunning:
␈βε	␈↓ αP␈ε5CTRL/C␈α&CT␈α␈RL/C
␈βε+␈↓ αP␈∧ε+αPαα	
␈βε3␈↓ αP␈ε6|
␈βεT␈↓ αl␈∧εTαlα
␈βε←␈↓ ↓Z␈ε6∂␈↓ ↓}␈ε"T␈α⎇o␈αcorrect␈αor␈αchange␈αa␈αprogram␈αthat␈αhas␈αbeen␈α|led,␈αe.g.␈α⊂by␈αa␈αprevious␈αCREA␈α⎇TE:
␈βπ␈↓ αP␈ε6|␈↓ βN␈ε/|le
␈βπ∞␈↓ αl␈ε5EDIT␈↓ β8␈εβe
␈βπ↔␈↓ β=␈εβs
␈βπ!␈↓ βB␈εβc␈↓ ∧λ␈εαJ
␈βπ8␈↓ αl␈∧π8αlα↓,
␈βπ:␈↓ αP␈ε5editing␈α∪co␈α␈mmands␈α∪--␈α∩see␈α∪summar␈α␈y␈α∪below
␈βπY␈↓ λ␈∧πYλα
␈βπf␈↓ αP␈ε5*␈↓ αc␈ε5E
␈βπy␈↓ αv␈εαJ
␈βλ⊃␈↓ αP␈ε6|␈↓ αc␈∧λ⊃αcα#
␈βλ2␈↓ αl␈∧λ2αlα
␈βλ=␈↓ ↓Z␈ε6∂␈↓ ↓}␈ε"T␈α⎇o␈αget␈αa␈αprin␈α␈ted␈αcopy␈αof␈αa␈α|le:
␈βλi␈↓ αP␈ε6|␈↓ βa␈ε/|le
␈βλk␈↓ αl␈ε5PRINT␈↓ βK␈εβe
␈βλu␈↓ βP␈εβs
␈βλ}␈↓ βU␈εβc␈↓ ∧∂␈εαJ
␈β	∃␈↓ αl␈∧	∃αlα↓3
␈β	_␈↓ αP␈ε5system␈α∪ech␈α␈o
␈β	7␈↓ ∧ ␈∧	7∧ α
␈β	B␈↓ ↓Z␈ε6∂␈↓ ↓}␈ε"T␈α⎇o␈αread␈αa␈α|le:
␈β	n␈↓ αP␈ε6|␈↓ βN␈ε/|le
␈β	p␈↓ αl␈ε5TYPE␈↓ β8␈εβe
␈β	z␈↓ β=␈εβs
␈β
β␈↓ βB␈εβc␈↓ β|␈εαJ
␈β
~␈↓ ↓Z␈ε6∂␈↓ ↓}␈ε"T␈α⎇o␈αm␈α↓o␈α␈v␈α␈e␈αforw␈α␈ard␈αthrough␈αa␈α|le␈αy␈α␈ou␈αare␈αreading:␈↓ αl␈∧
~αlα↓ 
␈β
I␈↓ αP␈ε5CTRL/Q
␈β
h␈↓ βB␈∧
hβBα
␈β
s␈↓ ↓Z␈ε6∂␈↓ ↓}␈ε"Summary␈αof␈αthings␈αto␈αsa␈α␈y␈αto␈αEDIT:
␈β∨␈↓ α␈ε6)␈↓ αP␈ε"T␈α⎇o␈αsee␈αa␈αparticular␈αline␈α(or␈αlines)␈αof␈αthe␈α|le␈αy␈α␈ou␈αare␈αediting:
␈βL␈↓ β	␈ε/line␈αn␈α␈um␈α␈ber
␈βN␈↓ αP␈ε5*␈↓ αc␈ε5P
␈β`␈↓ ∧C␈εαJ
␈βx␈↓ αc␈∧xαcα↓p
␈βz␈↓ αP␈ε5the␈α∪line␈α∪h␈α␈aving␈α∪that␈α∩number
␈β→␈↓ εO␈∧→εOα
␈β&␈↓ αP␈ε5*
␈βF␈↓ αc␈∧Fαcα
␈βQ␈↓ α␈ε"(Note:␈α
F␈α⎇or␈α
m␈α↓ore␈α
than␈αone␈α
line,␈α
use␈αthe␈α
|rst␈α
and␈αlast␈α
line␈αn␈α␈um␈α␈bers,␈α
with␈α
a␈αcolon
␈β|␈↓ ↓H␈ε"bet␈α␈w␈α␈een␈αthem.)
␈β
(␈↓ α␈ε6)␈↓ αP␈ε"T␈α⎇o␈αinsert␈αa␈αline␈αbet␈α␈w␈α␈een␈αexisting␈αlines,␈αusing␈αan␈αin␈α␈termediate␈αline␈αn␈α␈um␈α␈ber:
␈β
T␈↓ β	␈ε/line␈αn␈α␈um␈α␈ber
␈β
V␈↓ αP␈ε5*␈↓ αc␈ε5I
␈β
i␈↓ ∧C␈εαJ
␈β∞↓␈↓ αc␈∧∞↓αcα↓p␈↓ ∧3␈ε/y␈α␈our␈αnew␈αline
␈β∞β␈↓ αP␈ε5line␈α∪numbe␈α␈r
␈β∞)␈↓ ∧ ␈∧∞)∧ α↓g
␈β∞/␈↓ αP␈ε5*
␈β∞N␈↓ αc␈∧∞Nαcα
␈β∞Y␈↓ α␈ε6)␈↓ αP␈ε"T␈α⎇o␈αdelete␈αone␈αor␈αm␈α↓ore␈αlines␈α
of␈αthe␈α|le:
␈β∂ε␈↓ β	␈ε/line␈αn␈α␈um␈α␈ber(s)
␈β∂λ␈↓ αP␈ε5*␈↓ αc␈ε5D
␈β∂~␈↓ ∧i␈εαJ
␈β∂2␈↓ αc␈∧∂2αcαα⊗
␈β∂4␈↓ αP␈ε5system␈α∪ech␈α␈o
␈β∂S␈↓ ∧ ␈∧∂S∧ α
␈β⊃∨

␈β↓H␈↓ ↓$␈∧↓H↓$α
u
␈β↓J␈↓ ↓$␈∧↓J↓$Hα␈↓ α→␈∧↓Jα→Hα␈↓ ↔␈∧↓J↔Hα
␈β↓V␈↓ βs␈ε>I␈α↓n␈α␈tro␈α␈ducti␈α␈on␈α∞to␈α∞th␈α␈e␈α∂TO␈α␈P␈α↓S-20␈α∞System␈α∞at␈α∞L␈α␈OTS
␈β↓\␈↓ ↓D␈ε"118
␈βα⊃␈↓ ↓$␈∧α⊃↓$α
u
␈βαK␈↓ αP␈ε5*
␈βαj␈↓ αc␈∧αjαcα
␈βαt␈↓ α␈ε6)␈↓ αP␈ε"T␈α⎇o␈αreplace␈αa␈αline␈αof␈αthe␈α|le␈α
with␈αa␈αnew␈αone:
␈ββ∨␈↓ β	␈ε/line␈αn␈α␈um␈α␈ber
␈ββ!␈↓ αP␈ε5*␈↓ αc␈ε5R
␈ββ4␈↓ ∧C␈εαJ
␈ββJ␈↓ ∧3␈ε/y␈α␈our␈αnew␈αline
␈ββK␈↓ αc␈∧βKαcα↓p
␈ββL␈↓ αP␈ε5line␈α∪numbe␈α␈r
␈ββs␈↓ ∧ ␈∧βs∧ α↓g
␈ββx␈↓ αP␈ε5system␈α∪ech␈α␈o
␈β∧↔␈↓ ∧ ␈∧∧↔∧ α
␈β∧#␈↓ αP␈ε5*
␈β∧B␈↓ αc␈∧∧Bαcα
␈β∧L␈↓ α␈ε6)␈↓ αP␈ε"T␈α⎇o␈αchange␈αAPPLE␈αto␈αBANANA␈αin␈αa␈αline␈αof␈αy␈α␈our␈α|le:
␈β∧w␈↓ ¬∧␈ε/line␈αn␈α␈um␈α␈ber
␈β∧y␈↓ αP␈ε5*␈↓ αc␈ε5SAPPLE␈↓ βU␈εβe␈↓ βj␈ε5BANANA␈↓ ∧\␈εβe
␈β¬β␈↓ βZ␈εβs␈↓ ∧a␈εβs
␈β¬␈↓ β↑␈εβc␈↓ ∧e␈εβc␈↓ ε>␈εαJ
␈β¬#␈↓ αc␈∧¬#αcαβk
␈β¬$␈↓ αP␈ε5line␈α∪numbe␈α␈r␈α9the␈α∪li␈α␈ne␈α∪as␈α∪modi␈α␈fied
␈β¬D␈↓ πS␈∧¬DπSα
␈β¬N␈↓ α␈ε6)␈↓ αP␈ε"T␈α⎇o␈αsa␈α␈v␈α␈e␈αthe␈αedited␈α|le␈αand␈αreturn␈αto␈αtalking␈αto␈αTOPS␈α20:
␈β¬{␈↓ αP␈ε5*␈↓ αc␈ε5E
␈βε∞␈↓ αv␈εαJ
␈βε$␈↓ αP␈ε6|
␈βε%␈↓ αc␈∧ε%αcα#
␈βεE␈↓ αl␈∧εEαlα
␈β⊃_

␈β↓H␈↓ ↓$␈∧↓H↓$α
u
␈β↓J␈↓ ↓$␈∧↓J↓$Hα␈↓ "␈∧↓J"Hα␈↓ ↔␈∧↓J↔Hα
␈β↓V␈↓ ¬≡␈ε>F␈α↓i␈α␈le␈α∞P␈α↓r␈α␈otectio␈α␈n
␈β↓\␈↓ B␈ε"119
␈βα⊃␈↓ ↓$␈∧α⊃↓$α
u
␈βαT␈↓ ↓H␈ε>APP␈α↓ENDIX␈α∂B.␈α∂Fi␈α␈le␈α∂Pro␈α␈tectio␈α␈n.
␈ββ↔␈↓ α␈ε"Unless␈αy␈α␈ou␈αtak␈α␈e␈αsome␈αaction␈αto␈αprotect␈αy␈α␈our␈α|les,␈αthey␈αcan␈αbe␈αread␈αor␈αcopied␈αby
␈ββC␈↓ ↓H␈ε"an␈α␈y␈α␈one.␈α∪This␈α
is␈α∞inapropriate␈α
for␈α
course␈α
assignmen␈α␈ts,␈α∞in␈α
a␈α
w␈α␈orld␈α
where␈α
n␈α↓ot␈α
ev␈α␈ery␈α␈one
␈ββn␈↓ ↓H␈ε"is␈αh␈α↓onest.␈α⊂T␈α⎇o␈αchange␈αthe␈αprotection␈αstatus␈αof␈αa␈α|le,␈αuse␈αthe␈αTOPS-20␈αcommand
␈β∧→␈↓ αP␈ε6|␈↓ ¬f␈ε/|lename␈αn
␈β∧≠␈↓ αl␈ε5SET␈α∪FILE␈α∪P␈α␈ROTECTION
␈β∧:␈↓ αl␈∧∧:αlα∧≥
␈β∧D␈↓ ↓H␈ε"where␈ε/␈α∞n␈ε"␈α∞is␈α∞a␈α∞six␈α∞digit␈α∞n␈α␈um␈α␈ber,␈α∂sa␈α␈y␈α∞AABBCC.␈α∞Here␈α∞the␈α∞t␈α␈w␈α␈o␈α∞digits␈α∞AA␈α∞con␈α␈trol␈α∞what
␈β∧o␈↓ ↓H␈ε"y␈α␈ou␈α∂y␈α␈ourself␈α∂can␈α∞do␈α∂to␈α∂the␈α∂|le,␈α⊂BB␈α∂con␈α␈trol␈α∂what␈α∂mem␈α␈bers␈α∂of␈α∂y␈α␈our␈α∂\group"␈α∂can␈α∞do
␈β¬≠␈↓ ↓H␈ε"(meaningless␈αfor␈αcourses),␈αand␈αCC␈αcon␈α␈trols␈αwhat␈αev␈α␈ery␈α␈one␈αelse␈αcan␈αdo␈αto␈αy␈α␈our␈α|le.
␈β¬F␈↓ α␈ε"Each␈αλof␈αλthese␈αλt␈α␈w␈α␈o␈αλdigit␈αλn␈α␈um␈α␈bers␈αλis␈αλobtained␈αλby␈αλadding␈αλup␈αλcodes␈αλfor␈αλthe␈αλcapabilities
␈β¬q␈↓ ↓H␈ε"y␈α␈ou␈αw␈α␈an␈α␈t␈αto␈αallo␈α␈w,␈αaccording␈αto␈αthis␈αcode:
␈βε/␈↓ αP␈ε∃40␈↓ β∀␈ε∃Allow␈↓ βz␈ε∃reading.
␈βεV␈↓ αP␈ε∃20␈↓ β∀␈ε∃Allow␈↓ βz␈ε∃writing␈↓ ¬α␈ε∃(i.e.,␈↓ ¬y␈ε∃changing␈↓ π∩␈ε∃the␈↓ πV␈ε∃file,␈↓ λ<␈ε∃possibly
␈βε}␈↓ β∀␈ε∃losing␈↓ ∧␈ε∃its␈↓ ∧O␈ε∃current␈↓ ¬W␈ε∃contents).
␈βπ%␈↓ αP␈ε∃10␈↓ β∀␈ε∃Allow␈↓ βz␈ε∃executing.
␈βπM␈↓ αP␈ε∃04␈↓ β∀␈ε∃Allow␈↓ βz␈ε∃appending␈↓ ¬$␈ε∃to␈↓ ¬W␈ε∃the␈↓ ε≠␈ε∃file.
␈βπu␈↓ αP␈ε∃02␈↓ β∀␈ε∃Allow␈↓ βz␈ε∃appearance␈↓ ¬5␈ε∃in␈↓ ¬h␈ε∃directory␈↓ π∩␈ε∃listings.
␈βλ≤␈↓ αP␈ε∃01␈↓ β∀␈ε∃Has␈↓ βX␈ε∃no␈↓ ∧␈ε∃effect.
␈βλY␈↓ α␈ε"If␈αy␈α␈ou␈α
don't␈αprotect␈α
a␈α|le,␈αit␈α
has␈αprotection␈αn␈α␈um␈α␈ber␈α
777752,␈αso␈α
an␈α␈y␈α␈one␈αcan␈αread
␈β	∧␈↓ ↓H␈ε"or␈αexecute␈αit␈α
or␈αsee␈α
that␈αit␈α
is␈αin␈αy␈α␈our␈α
directory;␈αonly␈α
y␈α␈ou␈αcan␈α
change␈αor␈αadd␈α
to␈αit.␈α⊃A
␈β	/␈↓ ↓H␈ε"m␈α↓ore␈αappropriate␈α
protection␈αn␈α␈um␈α␈ber␈α
for␈αh␈α↓omew␈α␈ork␈α
Pascal␈α
programs␈αis␈α
777702.␈α⊃Y␈α⎇ou
␈β	[␈↓ ↓H␈ε"ma␈α␈y␈αat␈αtimes␈α
w␈α␈an␈α␈t␈αto␈αprotect␈αy␈α␈our␈α
|les␈αev␈α␈en␈αfrom␈α
y␈α␈ourself,␈αto␈αprev␈α␈en␈α␈t␈αunin␈α␈ten␈α␈tional
␈β
ε␈↓ ↓H␈ε"erasing.
␈β
1␈↓ α␈ε"Y␈α⎇ou␈αcan␈α
set␈αthe␈αprotection␈α
for␈αall␈α|les␈αy␈α␈ou␈α
create␈αin␈αthe␈α
future␈αby␈αthe␈αTOPS-20
␈β
\␈↓ ↓H␈ε"command
␈βπ␈↓ αP␈ε6|␈↓ λ;␈ε/username␈αn
␈β	␈↓ αl␈ε5SET␈α∪DIRECT␈α␈ORY␈α∪FILE-P␈α␈ROTECTION-␈α␈DEFAULT
␈β)␈↓ αl␈∧)αlαπβ
␈β3␈↓ ↓H␈ε"where␈ε/␈α⊃n␈ε"␈α∩is␈α∩again␈α⊃the␈α∩protection␈α⊃n␈α␈um␈α␈ber.␈α!This␈α∩command␈α∩does␈α⊃n␈α↓ot␈α∩a{ect␈α⊃presen␈α␈t
␈β↑␈↓ ↓H␈ε"or␈α∂future␈α⊂generations␈α∂of␈α⊂existing␈α∂|les.␈α≠It␈α∂does␈α⊂n␈α↓ot␈α∂prev␈α␈en␈α␈t␈α⊂y␈α␈ou␈α∂from␈α⊂changing␈α∂the
␈β	␈↓ ↓H␈ε"protection␈αn␈α␈um␈α␈bers␈αon␈αindividual␈α|les␈αa$er␈αcreating␈αthem.
␈β4␈↓ α␈ε"F␈α⎇or␈αm␈α↓ore␈αdetails,␈αsee␈ε/␈αL␈α␈OTS␈αDEC␈αSystem-20␈αOv␈α␈erview␈ε",␈αsection␈α2.5.2.1
␈β⊃_

␈β↓H␈↓ ↓$␈∧↓H↓$α
u
␈β↓J␈↓ ↓$␈∧↓J↓$Hα␈↓ α→␈∧↓Jα→Hα␈↓ ↔␈∧↓J↔Hα
␈β↓V␈↓ ¬,␈ε>M␈α␈or␈α␈e␈α∂TO␈α␈P␈α↓S-20␈α∞Com␈α␈mands
␈β↓\␈↓ ↓D␈ε"120
␈βα⊃␈↓ ↓$␈∧α⊃↓$α
u
␈βαU␈↓ ↓H␈ε>APP␈α↓ENDIX␈α∂C.␈α∂M␈α␈or␈α␈e␈α∂TO␈α␈P␈α↓S-20␈α∞Com␈α␈mands.
␈ββ→␈↓ α␈ε"Ho␈α␈w␈αto␈αdo␈αsome␈αcomm␈α↓on␈αtasks␈αin␈α|le␈αhandling␈αat␈αL␈α␈OTS.
␈ββw␈↓ ↓Z␈ε6∂␈↓ ↓}␈ε"Getting␈αinformation␈αabout␈αthe␈αsystem.
␈β∧#␈↓ α␈ε6)␈↓ αP␈ε"Information␈αabout␈αa␈αTOPS-20␈αcommand:
␈β∧P␈↓ αP␈ε6|␈↓ βK␈ε/command-name
␈β∧R␈↓ αl␈ε5HELP
␈β∧d␈↓ ¬C␈εαJ
␈β∧|␈↓ α␈ε6)␈↓ αP␈ε"Information␈αabout␈αwhat␈αy␈α␈ou␈αcan␈αt␈α␈ype␈αnext:␈↓ αl␈∧∧|αlααg
␈β¬*␈↓ αP␈εβe
␈β¬3␈↓ αV␈εβs
␈β¬=␈↓ αZ␈εβc
␈β¬T␈↓ αP␈∧¬TαPα⊗
␈β¬V␈↓ αP␈ε5or
␈β¬u␈↓ αv␈∧¬uαvα
␈βεα␈↓ αP␈ε5?
␈βε!␈↓ αP␈∧ε!αPα∪
␈βε,␈↓ α␈ε6)␈↓ αP␈ε"Information␈αabout␈α|les.
␈βεX␈↓ αP␈ε6)␈↓ β∃␈ε"T␈α⎇o␈αsee␈αwhat␈α|les␈αy␈α␈ou␈αha␈α␈v␈α␈e␈α(names␈αonly):
␈βπ∧␈↓ αP␈ε6|
␈βπε␈↓ αl␈ε5DIRECTORY
␈βπ→␈↓ ∧)␈εαJ
␈βπ0␈↓ αl␈∧π0αlα↓M
␈βπ5␈↓ αP␈ε6)␈↓ β∃␈ε"T␈α⎇o␈α∂see␈α⊂m␈α↓ore␈α⊂detailed␈α∂information␈α⊂about␈α⊂th␈α↓ose␈α∂|les␈α⊂(protection␈α∂states,
␈βπa␈↓ β∃␈ε"pages,␈αsize,␈αdate):
␈βλ
␈↓ αP␈ε6|
␈βλ∂␈↓ αl␈ε5VD
␈βλ!␈↓ β%␈εαJ
␈βλ9␈↓ αl␈∧λ9αlαI
␈βλ>␈↓ β∃␈ε"(stands␈αfor␈α\v␈α␈erbose␈αdirectory")
␈βλj␈↓ αP␈ε6)␈↓ β∃␈ε"T␈α⎇o␈α∩see␈α∩such␈α∩information␈α∩about␈α∩a␈α∩subset␈α∩of␈α∩y␈α␈our␈α∩directory,␈α∪or␈α∩about
␈β	∃␈↓ β∃␈ε"an␈α↓other␈αdirectory:
␈β	A␈↓ αP␈ε6|␈↓ ∧,␈ε/|les
␈β	C␈↓ αl␈ε5DIRECTORY␈↓ ∧↔␈εβe
␈β	L␈↓ ∧≤␈εβs
␈β	V␈↓ ∧ ␈εβc␈↓ ∧h␈εαJ
␈β	m␈↓ αl␈∧	mαlαα
␈β	r␈↓ β∃␈ε"(similar␈αfor␈αVD)
␈β
≡␈↓ αP␈ε6)␈↓ β∃␈ε"T␈α⎇o␈αsee␈αwhich␈α|les␈αha␈α␈v␈α␈e␈αbeen␈αdeleted␈αbut␈αn␈α↓ot␈αy␈α␈et␈αexpunged:
␈β
J␈↓ αP␈ε6|
␈β
L␈↓ αl␈ε5QDIRECTORY
␈β
←␈↓ ∧)␈εαJ
␈β
v␈↓ αP␈ε6)␈↓ β∃␈ε"T␈α⎇o␈αsee␈αgeneral␈αinformation␈αabout␈αa␈αdirectory:
␈β
w␈↓ αl␈∧
wαlα↓M
␈β#␈↓ αP␈ε6|␈↓ ¬
␈ε/<directory␈αname>
␈β%␈↓ αl␈ε5INFO␈↓ β8␈εβe␈↓ βN␈ε5DI␈α␈RECTORY␈↓ ∧x␈εβe
␈β.␈↓ β=␈εβs␈↓ ∧⎇␈εβs
␈β7␈↓ βB␈εβc␈↓ ¬↓␈εβc␈↓ πU␈εαJ
␈βO␈↓ αl␈∧Oαlα∧y␈↓ β∃␈ε"or,␈αfor␈αm␈α↓ore␈αdetail,
␈β{␈↓ αP␈ε6|␈↓ ¬
␈ε/<directory␈αname>,
␈β⎇␈↓ αl␈ε5INFO␈↓ β8␈εβe␈↓ βN␈ε5DI␈α␈RECTORY␈↓ ∧x␈εβe
␈βε␈↓ β=␈εβs␈↓ ∧⎇␈εβs
␈β⊂␈↓ βB␈εβc␈↓ ¬↓␈εβc␈↓ π←␈εαJ
␈β'␈↓ αP␈ε6||␈↓ αl␈∧'αlα¬β
␈β)␈↓ βλ␈ε5VERBOSE
␈β<␈↓ ∧
␈εαJ
␈βS␈↓ αP␈ε6||␈↓ βλ␈∧Sβλα↓∃
␈βh␈↓ βλ␈εαJ
␈β␈␈↓ α␈ε6)␈↓ αP␈ε"Information␈αabout␈αthe␈αsystem,␈αand␈αy␈α␈our␈αprogram,␈αif␈αy␈α␈ou␈αha␈α␈v␈α␈e␈αone␈αrunning:␈↓ βλ␈∧␈βλα⊂
␈β
-␈↓ αP␈ε5CTRL/T
␈β
P␈↓ αP␈∧
PαPαr
␈β
W␈↓ α␈ε6)␈↓ αP␈ε"Information␈α∞about␈α
what␈α∞|les␈α
are␈α∞w␈α␈aiting␈α
to␈α∞be␈α
prin␈α␈ted␈α∞(y␈α␈ours␈α
and␈α
others'),
␈β∞α␈↓ αP␈ε"sh␈α↓o␈α␈wing␈αjob␈αnames,␈αsequence␈αn␈α␈um␈α␈bers,␈αsizes,␈αand␈αuser␈αnames:
␈β∞.␈↓ αP␈ε6|
␈β∞0␈↓ αl␈ε5INFORMATIO␈α␈N␈↓ ∧<␈εβe␈↓ ∧R␈ε5OUTPU␈α␈T-REQUESTS
␈β∞:␈↓ ∧B␈εβs
␈β∞C␈↓ ∧F␈εβc␈↓ εm␈εαJ
␈β∞[␈↓ α␈ε6)␈↓ αP␈ε"Information␈αabout␈αthe␈αcurren␈α␈t␈αtime␈αand␈αdate:␈↓ αl␈∧∞[αlα∧∩
␈β∂π␈↓ αP␈ε6|
␈β∂	␈↓ αl␈ε5DAYTIME
␈β∂≠␈↓ βq␈εαJ
␈β∂3␈↓ α␈ε6)␈↓ αP␈ε"Information␈αabout␈αy␈α␈our␈αterminal␈αtime␈αallocation:␈↓ αl␈∧∂3αlα↓∃
␈β⊃∨

␈β↓H␈↓ ↓$␈∧↓H↓$α
u
␈β↓J␈↓ ↓$␈∧↓J↓$Hα␈↓ "␈∧↓J"Hα␈↓ ↔␈∧↓J↔Hα
␈β↓V␈↓ ∧1␈ε>M␈α␈or␈α␈e␈α∂TO␈α␈P␈α↓S-20␈α∞Com␈α␈mands
␈β↓\␈↓ B␈ε"121
␈βα⊃␈↓ ↓$␈∧α⊃↓$α
u
␈βαO␈↓ αP␈ε6|
␈βαQ␈↓ αl␈ε5INFORMATIO␈α␈N␈↓ ∧<␈εβe␈↓ ∧R␈ε5ALLOC␈α␈ATION
␈βαZ␈↓ ∧B␈εβs
␈βαd␈↓ ∧F␈εβc␈↓ ε∂␈εαJ
␈βα{␈↓ ↓Z␈ε6∂␈↓ ↓}␈ε"Making␈αpermanen␈α␈t␈αchanges␈αin␈αthe␈αsystem␈αcon␈α␈v␈α␈en␈α␈tions␈αfor␈αhandling␈αy␈α␈our␈α|les␈αand␈↓ αl␈∧α{αlαβ3
␈ββ&␈↓ α4␈ε"jobs:
␈ββR␈↓ αP␈ε6|
␈ββT␈↓ αl␈ε5SET␈α∪...
␈ββs␈↓ αl␈∧βsαlα↓¬
␈ββ⎇␈↓ α␈ε"is␈αused␈αfor␈αm␈α↓ost␈αsuch␈αchanges.
␈β∧)␈↓ α␈ε"Some␈α∞importan␈α␈t␈α
cases␈α∞of␈α
SET␈α∞follo␈α␈w.␈α∃T␈α⎇o␈α
see␈α∞what␈α
con␈α␈v␈α␈en␈α␈tions␈α∞are␈α
in␈α∞e{ect␈α
for
␈β∧U␈↓ α␈ε"y␈α␈ou,␈αuse␈αthe␈αINF␈α␈O␈αcommands.
␈β¬␈↓ α␈ε6)␈↓ αP␈ε"T␈α⎇o␈αchange␈αthe␈αn␈α␈um␈α␈ber␈αof␈αgenerations␈αk␈α␈ept␈αin␈αy␈α␈our␈α|les:
␈β¬,␈↓ αP␈ε6|␈↓ εM␈ε/directory-name␈↓ λP␈ε/n␈α␈um␈α␈ber
␈β¬.␈↓ αl␈ε5SET␈↓ β%␈εβe␈↓ β;␈ε5DIR␈α␈ECTORY␈↓ ∧e␈εβe␈↓ ∧z␈ε5GENERATION␈↓ ε7␈εβe␈↓ λ:␈εβe
␈β¬8␈↓ β*␈εβs␈↓ ∧j␈εβs␈↓ ε=␈εβs␈↓ λ?␈εβs
␈β¬A␈↓ β/␈εβc␈↓ ∧n␈εβc␈↓ εA␈εβc␈↓ λD␈εβc␈↓ 	F␈εαJ
␈β¬X␈↓ αl␈∧¬Xαlαεj
␈β¬Z␈↓ αP␈ε5PASSWORD:␈↓ β{␈ε5Y␈α␈our␈α∪passwo␈α␈rd␈↓ ¬p␈εβe
␈β¬d␈↓ ¬v␈εβs
␈β¬m␈↓ ¬z␈εβc
␈βε∧␈↓ α␈ε6)␈↓ αP␈ε"T␈α⎇o␈αchange␈αthe␈αlev␈α␈el␈αof␈αprotection␈αof␈αdirectory␈αinformation:␈↓ β{␈∧ε∧β{αα
␈βε0␈↓ αP␈ε6|␈↓ εM␈ε/directory-name␈↓ λP␈ε/n␈α␈um␈α␈ber
␈βε2␈↓ αl␈ε5SET␈↓ β%␈εβe␈↓ β;␈ε5DIR␈α␈ECTORY␈↓ ∧e␈εβe␈↓ ∧z␈ε5PROTECTION␈↓ ε7␈εβe␈↓ λ:␈εβe
␈βε;␈↓ β*␈εβs␈↓ ∧j␈εβs␈↓ ε=␈εβs␈↓ λ?␈εβs
␈βεE␈↓ β/␈εβc␈↓ ∧n␈εβc␈↓ εA␈εβc␈↓ λD␈εβc␈↓ 	F␈εαJ
␈βε\␈↓ αl␈∧ε\αlαεj
␈βε↑␈↓ αP␈ε5PASSWORD:␈↓ β{␈ε5Y␈α␈our␈α∪passwo␈α␈rd
␈βπ¬␈↓ β{␈∧π¬β{α↓v
␈βπλ␈↓ α␈ε6)␈↓ αP␈ε"T␈α⎇o␈α∞change␈α
the␈α
lev␈α␈el␈α∞of␈α
protection␈α
automatically␈α∞giv␈α␈en␈α
to␈α
|les␈α∞y␈α␈ou␈α
create␈α
in
␈βπ3␈↓ αP␈ε"the␈αfuture:
␈βπ←␈↓ αP␈ε6|␈↓ λC␈ε/directory-name␈↓ 
E␈ε/n␈α␈um␈α␈ber
␈βπa␈↓ αl␈ε5SET␈↓ β%␈εβe␈↓ β;␈ε5DIR␈α␈ECTORY␈↓ ∧e␈εβe␈↓ ∧z␈ε5FILE-PROTE␈α␈CTION-DEFA␈α␈ULT␈↓ λ-␈εβe␈↓ 
0␈εβe
␈βπj␈↓ β*␈εβs␈↓ ∧j␈εβs␈↓ λ2␈εβs␈↓ 
5␈εβs
␈βπs␈↓ β/␈εβc␈↓ ∧n␈εβc␈↓ λ7␈εβc␈↓ 
9␈εβc␈↓ ;␈εαJ
␈βλ
␈↓ α␈ε6)␈↓ αP␈ε"See␈αalso␈αprin␈α␈ting␈αformat␈αdefaults,␈αand␈αinitialization␈α|les.
␈βλ␈↓ αl␈∧λαlαλ←
␈βλ6␈↓ ↓Z␈ε6∂␈↓ ↓}␈ε"Correcting␈αmistak␈α␈es.
␈βλb␈↓ α␈ε6)␈↓ αP␈ε"T␈α⎇o␈αcancel␈αa␈αprin␈α␈ting␈αrequest:
␈β	∞␈↓ αP␈ε6|␈↓ ∧h␈ε/jobname
␈β	⊂␈↓ αl␈ε5CANCEL␈↓ β↑␈εβe␈↓ βs␈ε5PRINT␈↓ ∧R␈εβe
␈β	→␈↓ βc␈εβs␈↓ ∧W␈εβs
␈β	#␈↓ βg␈εβc␈↓ ∧\␈εβc␈↓ ¬n␈εαJ
␈β	:␈↓ αP␈ε"or␈↓ αl␈∧	:αlαβ∩
␈β	f␈↓ αP␈ε6|␈↓ ¬I␈ε/sequence␈αn␈α␈um␈α␈ber
␈β	h␈↓ αl␈ε5CANCEL␈↓ β↑␈εβe␈↓ βs␈ε5PRINT␈↓ ∧R␈εβe␈↓ ∧h␈ε5/␈α␈SEQ␈↓ ¬3␈εβe
␈β	q␈↓ βc␈εβs␈↓ ∧W␈εβs␈↓ ¬8␈εβs
␈β	z␈↓ βg␈εβc␈↓ ∧\␈εβc␈↓ ¬=␈εβc␈↓ πS␈εαJ
␈β
∩␈↓ α␈ε6)␈↓ αP␈ε"T␈α⎇o␈αcancel␈αall␈αy␈α␈our␈αcurren␈α␈t␈αprin␈α␈t␈αrequests:␈↓ αl␈∧
∩αlα∧w
␈β
=␈↓ αP␈ε6|
␈β
?␈↓ αl␈ε5CANCEL␈↓ β↑␈εβe␈↓ βs␈ε5PRINT␈↓ ∧R␈εβe␈↓ ∧h␈ε5*
␈β
I␈↓ βc␈εβs␈↓ ∧W␈εβs
␈β
R␈↓ βg␈εβc␈↓ ∧\␈εβc␈↓ ∧z␈εαJ
␈β
i␈↓ α␈ε6)␈↓ αP␈ε"T␈α⎇o␈αretriev␈α␈e␈αdeleted␈α|les:
␈β
j␈↓ αl␈∧
jαlαα∨
␈β∃␈↓ αP␈ε6|␈↓ ∧→␈ε/|les
␈β↔␈↓ αl␈ε5UNDELETE␈↓ ∧∧␈εβe
␈β!␈↓ ∧	␈εβs
␈β*␈↓ ∧
␈εβc␈↓ ∧U␈εαJ
␈βA␈↓ αl␈∧Aαlα↓y
␈βF␈↓ αP␈ε"(use␈αgeneration␈αn␈α␈um␈α␈ber)
␈βr␈↓ α␈ε6)␈↓ αP␈ε"T␈α⎇o␈αchange␈αswitch␈αsettings␈αon␈αa␈αpending␈αprin␈α␈t␈αrequest:
␈β≡␈↓ αP␈ε6|␈↓ ¬3␈ε"(see␈ε6␈α∪|␈↓ λ∩␈ε"or␈ε6␈α∩|␈↓ 
0␈ε")
␈β ␈↓ αl␈ε5MODIFY␈↓ β↑␈εβe␈↓ βs␈ε5PRINT␈↓ ∧R␈εβe␈↓ ∧h␈ε5.␈α␈..␈↓ ε≤␈ε5HELP␈↓ εh␈εβe␈↓ ε⎇␈ε5MODIFY␈↓ λ`␈ε5HELP␈↓ 	,␈εβe␈↓ 	B␈ε5PR␈α␈INT
␈β)␈↓ βc␈εβs␈↓ ∧W␈εβs␈↓ εm␈εβs␈↓ 	1␈εβs
␈β2␈↓ βg␈εβc␈↓ ∧\␈εβc␈↓ εq␈εβc␈↓ πo␈εαJ␈↓ 	6␈εβc␈↓ 
 ␈εαJ
␈βJ␈↓ ↓Z␈ε6∂␈↓ ↓}␈ε"Sending␈αmessages.␈↓ αl␈∧Jαlαα4␈↓ ε≤␈∧Jε≤α↓c␈↓ λ`␈∧Jλ`α↓P
␈βu␈↓ α␈ε6)␈↓ αP␈ε"T␈α⎇o␈αsend␈αmail␈αto␈αan␈α↓other␈α
user.
␈β
!␈↓ αP␈ε6|␈↓ βK␈ε/username
␈β
#␈↓ αl␈ε5MAIL
␈β
6␈↓ ∧←␈εαJ
␈β
M␈↓ αl␈∧
Mαlααβ
␈β
O␈↓ αP␈ε5SUBJECT:␈↓ βh␈ε5on␈α␈e␈α∪line␈α∪tit␈α␈le
␈β
b␈↓ ¬p␈εαJ
␈β
y␈↓ βh␈∧
yβhαα→
␈β
{␈↓ αP␈ε5MESSAGE:␈↓ βh␈ε5as␈α∩many␈α∪line␈α␈s␈α∪as␈α∪you␈α∪l␈α␈ike
␈β∞"␈↓ βh␈∧∞"βhαβY
␈β∞'␈↓ αP␈ε5terminated␈α∩with␈α∪CTRL␈α␈/Z.
␈β∞I␈↓ αP␈∧∞IαPαβ3
␈β∞Q␈↓ αP␈ε"Y␈α⎇ou␈αcan␈αalso␈αsend␈αmail␈αto␈αor␈αfrom␈α|les␈α←␈αsee␈ε6␈α|
␈β∞S␈↓ λA␈ε5HELP␈↓ 	
␈εβe␈↓ 	#␈ε5MA␈α␈IL
␈β∞\␈↓ 	∩␈εβs
␈β∞e␈↓ 	↔␈εβc␈↓ 	n␈εαJ
␈β∞⎇␈↓ α␈ε6)␈↓ αP␈ε"T␈α⎇o␈αread␈αy␈α␈our␈αmail:␈↓ λA␈∧∞⎇λAα↓=
␈β∂(␈↓ αP␈ε6|
␈β∂*␈↓ αl␈ε5TYPE␈α∪MAIL.␈α␈TXT
␈β∂=␈↓ ∧b␈εαJ
␈β∂U␈↓ αl␈∧∂Uαlααε
␈β⊃∨

␈β↓H␈↓ ↓$␈∧↓H↓$α
u
␈β↓J␈↓ ↓$␈∧↓J↓$Hα␈↓ α→␈∧↓Jα→Hα␈↓ ↔␈∧↓J↔Hα
␈β↓V␈↓ ¬,␈ε>M␈α␈or␈α␈e␈α∂TO␈α␈P␈α↓S-20␈α∞Com␈α␈mands
␈β↓\␈↓ ↓D␈ε"122
␈βα⊃␈↓ ↓$␈∧α⊃↓$α
u
␈βαO␈↓ α␈ε6)␈↓ αP␈ε"T␈α⎇o␈αdelete␈αall␈αmail:
␈βα{␈↓ αP␈ε6|
␈βα⎇␈↓ αl␈ε5DELETE␈α∪MAI␈α␈L.TXT
␈ββ∂␈↓ ¬λ␈εαJ
␈ββ'␈↓ αl␈∧β'αlαα,
␈ββ+␈↓ α␈ε6)␈↓ αP␈ε"T␈α⎇o␈αdelete␈αpart␈αof␈αy␈α␈our␈αmail␈α(and␈αfor␈αgeneral␈αinformation␈αabout␈αmail):
␈ββW␈↓ αP␈ε6|
␈ββY␈↓ αl␈ε5HELP␈α∪MM
␈ββl␈↓ βq␈εαJ
␈β∧β␈↓ α␈ε6)␈↓ αP␈ε"T␈α⎇o␈αsend␈αa␈αmessage␈αto␈αsomeone␈αat␈αan␈α↓other␈αterminal:␈↓ αl␈∧∧βαlα↓∃
␈β∧/␈↓ αP␈ε6|
␈β∧1␈↓ αl␈ε5SEND␈↓ β8␈εβe␈↓ βN␈ε5us␈α␈ername␈↓ ∧e␈εβe␈↓ ∧z␈ε5one-line-m␈α␈essage
␈β∧:␈↓ β=␈εβs␈↓ ∧j␈εβs
␈β∧D␈↓ βB␈εβc␈↓ ∧n␈εβc␈↓ π)␈εαJ
␈β∧[␈↓ αP␈ε"T␈α⎇o␈αsend␈αa␈αlong␈αmessage:␈↓ αl␈∧∧[αlα∧M
␈β¬π␈↓ αP␈ε6|
␈β¬	␈↓ αl␈ε5NSEND
␈β¬≠␈↓ βK␈εαJ
␈β¬2␈↓ αP␈ε"or
␈β¬3␈↓ αl␈∧¬3αlαo
␈β¬↑␈↓ αP␈ε6|
␈β¬`␈↓ αl␈ε5HELP␈α∪NSEND
␈β¬s␈↓ ∧)␈εαJ
␈βε
␈↓ ↓Z␈ε6∂␈↓ ↓}␈ε"Prin␈α␈ting.␈↓ αl␈∧ε
αlα↓M
␈βε6␈↓ α␈ε6)␈↓ αP␈ε"T␈α⎇o␈αlimit␈αprin␈α␈ting␈αto␈αn␈α
pages:
␈βεb␈↓ αP␈ε6|
␈βεd␈↓ αl␈ε5PRINT␈↓ βK␈εβe␈↓ βa␈ε5f␈α␈iles␈↓ ∧?␈εβe␈↓ ∧U␈ε5/L␈α␈IMIT:␈α∪n
␈βεm␈↓ βP␈εβs␈↓ ∧D␈εβs
␈βεv␈↓ βU␈εβc␈↓ ∧I␈εβc␈↓ ¬␈␈εαJ
␈βπ∞␈↓ α␈ε6)␈↓ αP␈ε"T␈α⎇o␈αinsert␈αa␈αn␈α↓ote,␈αup␈αto␈α12␈αcharacters,␈αin␈αoutput␈αheader:␈↓ αl␈∧π∞αlαβ#
␈βπ9␈↓ αP␈ε6|
␈βπ;␈↓ αl␈ε5PRINT␈↓ βK␈εβe␈↓ βa␈ε5f␈α␈iles␈↓ ∧?␈εβe␈↓ ∧U␈ε5/N␈α␈OTE:␈α∪text␈α∩of␈α∪note
␈βπE␈↓ βP␈εβs␈↓ ∧D␈εβs
␈βπN␈↓ βU␈εβc␈↓ ∧I␈εβc␈↓ π<␈εαJ
␈βπf␈↓ αl␈∧πfαlα∧`
␈βπj␈↓ α␈ε6)␈↓ αP␈ε"Tp␈αprin␈α␈t␈αsome␈α|les␈αat␈αa␈αspeci|ed␈αlater␈αtime␈α(e.g.,␈αlate␈αat␈αnigh␈α␈t):
␈βλ⊗␈↓ αP␈ε6|
␈βλ_␈↓ αl␈ε5PRINT␈↓ βK␈εβe␈↓ βa␈ε5f␈α␈iles␈↓ ∧?␈εβe␈↓ ∧U␈ε5/A␈α␈FTER:␈α∪...
␈βλ!␈↓ βP␈εβs␈↓ ∧D␈εβs
␈βλ+␈↓ βU␈εβc␈↓ ∧I␈εβc
␈βλB␈↓ αl␈∧λBαlαβ9
␈βλG␈↓ αP␈ε"(see␈ε6␈α|
␈βλI␈↓ β2␈ε5HELP␈↓ β}␈εβe␈↓ ∧∀␈ε5PR␈α␈INT
␈βλR␈↓ ∧β␈εβs
␈βλ\␈↓ ∧λ␈εβc␈↓ ∧r␈εαJ
␈βλs␈↓ α␈ε6)␈↓ αP␈ε"T␈α⎇o␈αprin␈α␈t␈αand␈αthen␈αdelete␈α
a␈α|le:␈↓ β2␈∧λsβ2α↓P
␈β	≡␈↓ αP␈ε6|
␈β	 ␈↓ αl␈ε5PRINT␈↓ βK␈εβe␈↓ βa␈ε5f␈α␈iles␈↓ ∧?␈εβe␈↓ ∧U␈ε5/D␈α␈ELETE
␈β	*␈↓ βP␈εβs␈↓ ∧D␈εβs
␈β	3␈↓ βU␈εβc␈↓ ∧I␈εβc␈↓ ¬Y␈εαJ
␈β	J␈↓ α␈ε6)␈↓ αP␈ε"T␈α⎇o␈αprin␈α␈t␈αbinary␈α|les,␈αin␈α
octal:
␈β	K␈↓ αl␈∧	Kαlαα⎇
␈β	v␈↓ αP␈ε6|
␈β	x␈↓ αl␈ε5PRINT␈↓ βK␈εβe␈↓ βa␈ε5f␈α␈iles␈↓ ∧?␈εβe␈↓ ∧U␈ε5/P␈α␈RINT:␈α∪OCTA␈α␈L
␈β
α␈↓ βP␈εβs␈↓ ∧D␈εβs
␈β
␈↓ βU␈εβc␈↓ ∧I␈εβc␈↓ εJ␈εαJ
␈β
"␈↓ α␈ε6)␈↓ αP␈ε"T␈α⎇o␈αprin␈α␈t␈αdouble␈αor␈αtriple-spaced:␈↓ αl␈∧
"αlαβn
␈β
N␈↓ αP␈ε6|
␈β
P␈↓ αl␈ε5PRINT␈↓ βK␈εβe␈↓ βa␈ε5f␈α␈iles␈↓ ∧?␈εβe␈↓ ∧U␈ε5/S␈α␈PACING:␈α∪DO␈α␈UBLE
␈β
Y␈↓ βP␈εβs␈↓ ∧D␈εβs
␈β
c␈↓ βU␈εβc␈↓ ∧I␈εβc␈↓ πβ␈εαJ
␈β
z␈↓ αP␈ε6|␈↓ αl␈∧
zαlα∧'
␈β
|␈↓ αl␈ε5PRINT␈↓ βK␈εβe␈↓ βa␈ε5f␈α␈iles␈↓ ∧?␈εβe␈↓ ∧U␈ε5/S␈α␈PACING:␈α∪TR␈α␈IPLE
␈β¬␈↓ βP␈εβs␈↓ ∧D␈εβs
␈β∞␈↓ βU␈εβc␈↓ ∧I␈εβc␈↓ πβ␈εαJ
␈β%␈↓ α␈ε6)␈↓ αP␈ε"T␈α⎇o␈α
automatically␈αinclude␈αthe␈αabo␈α␈v␈α␈e␈α
switches,␈αlik␈α␈e␈↓ 	u␈ε"n␈α,␈αin␈αy␈α␈our␈αprin␈α␈t
␈β&␈↓ αl␈∧&αlα∧'
␈β'␈↓ λd␈ε5/LIMIT␈α␈:
␈βQ␈↓ αP␈ε"commands:
␈β|␈↓ αP␈ε6|
␈β}␈↓ αl␈ε5SET␈↓ β%␈εβe␈↓ β;␈ε5DEF␈α␈AULT␈↓ ∧?␈εβe␈↓ ∧U␈ε5PR␈α␈INT␈↓ ¬3␈εβe␈↓ ¬I␈ε5/sw␈α␈itch
␈βλ␈↓ β*␈εβs␈↓ ∧D␈εβs␈↓ ¬8␈εβs
␈β⊃␈↓ β/␈εβc␈↓ ∧I␈εβc␈↓ ¬=␈εβc␈↓ εM␈εαJ
␈β(␈↓ α␈ε6)␈↓ αP␈ε"T␈α⎇o␈αclear␈αall␈αsuch␈αautomatic␈αswitches:
␈β)␈↓ αl␈∧)αlαβq
␈βT␈↓ αP␈ε6|
␈βV␈↓ αl␈ε5SET␈↓ β%␈εβe␈↓ β;␈ε5NO␈↓ βa␈εβe␈↓ βv␈ε5DEFAULT␈↓ ∧z␈εβe␈↓ ¬⊂␈ε5PRINT
␈β`␈↓ β*␈εβs␈↓ βf␈εβs␈↓ ¬␈εβs
␈βi␈↓ β/␈εβc␈↓ βj␈εβc␈↓ ¬∧␈εβc␈↓ ¬o␈εαJ
␈β
␈↓ ↓Z␈ε6∂␈↓ ↓}␈ε"Handling␈αprograms.␈↓ αl␈∧
αlαβ∪
␈β
,␈↓ α␈ε"(␈↓ β≤␈ε",␈↓ β}␈ε",␈↓ ∧M␈ε",␈↓ ¬g␈ε",␈αetc.)
␈β
.␈↓ α_␈ε5COMPIL␈α␈E␈↓ β2␈ε5LOAD␈↓ ∧∀␈ε5RUN␈↓ ∧c␈ε5EX␈α␈ECUTE
␈β
X␈↓ α␈ε6)␈↓ αP␈ε"T␈α⎇o␈αstop␈αa␈αP␈α⎇ASCAL␈α(or␈αan␈α␈y␈αother)␈αprogram␈αwhile␈αit␈αis␈αexecuting:
␈β∞¬␈↓ αP␈ε5CTRL/C
␈β∞(␈↓ αP␈∧∞(αPαr
␈β∞/␈↓ α␈ε6)␈↓ αP␈ε"T␈α⎇o␈αrestart␈αit␈αwhere␈αit␈α
le$␈αo{:
␈β∞[␈↓ αP␈ε6|
␈β∞]␈↓ αl␈ε5CONTINUE
␈β∞p␈↓ ∧∧␈εαJ
␈β∂π␈↓ ↓Z␈ε6∂␈↓ ↓}␈ε"Handling␈α|les.␈↓ αl␈∧∂παlα↓(
␈β∂3␈↓ α␈ε6)␈↓ αP␈ε"T␈α⎇o␈αcopy␈α|lesa,␈αcalling␈αthe␈αcopy␈α
|leb:
␈β⊃∨

␈β↓H␈↓ ↓$␈∧↓H↓$α
u
␈β↓J␈↓ ↓$␈∧↓J↓$Hα␈↓ "␈∧↓J"Hα␈↓ ↔␈∧↓J↔Hα
␈β↓V␈↓ ∧1␈ε>M␈α␈or␈α␈e␈α∂TO␈α␈P␈α↓S-20␈α∞Com␈α␈mands
␈β↓\␈↓ B␈ε"123
␈βα⊃␈↓ ↓$␈∧α⊃↓$α
u
␈βαO␈↓ αP␈ε6|
␈βαQ␈↓ αl␈ε5COPY␈↓ β8␈εβe␈↓ βN␈ε5fi␈α␈lesa␈↓ ∧?␈εβe␈↓ ∧U␈ε5fi␈α␈leb
␈βαZ␈↓ β=␈εβs␈↓ ∧D␈εβs
␈βαd␈↓ βB␈εβc␈↓ ∧I␈εβc␈↓ ¬3␈εαJ
␈βα{␈↓ αl␈∧α{αlααW
␈βα␈␈↓ α␈ε6)␈↓ αP␈ε"T␈α⎇o␈αappend␈α|lesa␈α_to␈α|leb␈α_(useable␈αonly␈αfor␈α|les␈αwith␈α↓out␈αline␈αn␈α␈um␈α␈bers):
␈ββ*␈↓ αP␈ε6|
␈ββ,␈↓ αl␈ε5APPEND␈↓ β↑␈εβe␈↓ βs␈ε5filesa␈↓ ∧e␈εβe␈↓ ∧z␈ε5fileb
␈ββ6␈↓ βc␈εβs␈↓ ∧j␈εβs
␈ββ?␈↓ βg␈εβc␈↓ ∧n␈εβc␈↓ ¬␈␈εαJ
␈ββU␈↓ α␈ε6)␈↓ αP␈ε"T␈α⎇o␈αdelete␈α|les␈αfrom␈αdirectory:
␈ββV␈↓ αl␈∧βVαlαβ#
␈β∧↓␈↓ β∃␈ε"(Use␈αthis␈αcautiously!)
␈β∧,␈↓ αP␈ε6|
␈β∧.␈↓ αl␈ε5DELETE␈↓ β↑␈εβe␈↓ βs␈ε5files
␈β∧7␈↓ βc␈εβs
␈β∧A␈↓ βg␈εβc␈↓ ∧e␈εαJ
␈β∧W␈↓ α␈ε6)␈↓ αP␈ε"T␈α⎇o␈αtry␈αto␈αrestore␈αerroneously␈αdeleted␈α|les:
␈β∧X␈↓ αl␈∧∧Xαlαα	
␈β¬α␈↓ αP␈ε6|␈↓ ∧→␈ε/|les
␈β¬∧␈↓ αl␈ε5UNDELETE␈↓ ∧∧␈εβe
␈β¬∞␈↓ ∧	␈εβs
␈β¬↔␈↓ ∧
␈εβc␈↓ ∧U␈εαJ
␈β¬-␈↓ α␈ε6)␈↓ αP␈ε"T␈α⎇o␈αerase␈αdeleted␈α|les:
␈β¬.␈↓ αl␈∧¬.αlα↓y
␈β¬Y␈↓ αP␈ε6|
␈β¬[␈↓ αl␈ε5EXPUNGE
␈β¬m␈↓ ∧∧␈εαJ
␈βε¬␈↓ αl␈∧ε¬αlα↓(
␈βε	␈↓ α␈ε6)␈↓ αP␈ε"T␈α⎇o␈αcompare␈αt␈α␈w␈α␈o␈α|les␈α(see␈ε6␈α|␈↓ πc␈ε")
␈βε␈↓ εβ␈ε5HELP␈α∪SRCCO␈α␈M
␈βε≡␈↓ πS␈εαJ
␈βε4␈↓ αP␈ε6|
␈βε5␈↓ εβ␈∧ε5εβα↓`
␈βε6␈↓ αl␈ε5SRCCOM
␈βεI␈↓ β↑␈εαJ
␈βε←␈↓ ↓Z␈ε6∂␈↓ ↓}␈ε"Using␈αother␈αdirectories.
␈βε`␈↓ αl␈∧ε`αlα↓α
␈βπ
␈↓ α␈ε6)␈↓ αP␈ε"T␈α⎇o␈αw␈α␈ork␈αprimarily␈αin␈αa␈αparticular␈αdirectory␈α(see␈ε6␈α|␈↓ 
Z␈ε")
␈βπ␈↓ λd␈ε5HELP␈↓ 	0␈εβe␈↓ 	F␈ε5CO␈α␈NNECT
␈βπ⊗␈↓ 	5␈εβs
␈βπ∨␈↓ 	:␈εβc␈↓ 
J␈εαJ
␈βπ6␈↓ αP␈ε6|␈↓ ∧ε␈ε/directory-name
␈βπ7␈↓ λd␈∧π7λdα↓v
␈βπ8␈↓ αl␈ε5CONNECT␈↓ βq␈εβe
␈βπA␈↓ βv␈εβs
␈βπJ␈↓ βz␈εβc␈↓ ¬s␈εαJ
␈βπb␈↓ αl␈∧πbαlαβ↔
␈βπf␈↓ α␈ε6)␈↓ αP␈ε"T␈α⎇o␈αauth␈α↓orize␈αy␈α␈ourself␈αto␈αuse␈αdirectory␈ε/␈αdir␈ε"␈α(see␈αUsers'␈αGuide␈αPart␈αII):
␈βλ⊃␈↓ αP␈ε6|␈↓ βs␈ε/<dir>
␈βλ∪␈↓ αl␈ε5ACCESS␈↓ β↑␈εβe
␈βλ≤␈↓ βc␈εβs
␈βλ&␈↓ βg␈εβc␈↓ ∧g␈εαJ
␈βλ<␈↓ ↓Z␈ε6∂␈↓ ↓}␈ε"T␈α⎇o␈α
get␈α
some␈α
TOPS-20␈α
commands␈α
automatically␈α
executed␈α
when␈α
y␈α␈ou␈α
log␈α
in␈α
and␈α
log
␈βλ=␈↓ αl␈∧λ=αlαα
␈βλg␈↓ α4␈ε"out,␈α∪put␈α∩them␈α∩in␈α␈to␈α∩|les␈α∩named,␈α∪respectiv␈α␈ely,␈↓ 	b␈ε"and␈↓ j␈ε".
␈βλi␈↓ λ&␈ε5L␈α␈OGIN.CMD␈↓ 
-␈ε5LOGOUT.CMD
␈β	∪␈↓ α4␈ε"Obvious␈αλcandidates␈αλfor␈αλautomatic␈αλcommands␈αλon␈αλlogin␈αλare␈↓ 
W␈ε",␈↓ m␈ε",
␈β	∃␈↓ 	-␈ε5DI␈α␈RECTORY␈↓ 
i␈ε5DAY␈α␈TIME
␈β	>␈↓ ∧)␈ε",␈αand␈↓ π!␈ε",␈↓ 	x␈ε".
␈β	@␈↓ α4␈ε5TY␈α␈PE␈α∪MAIL.TX␈α␈T␈↓ ¬¬␈ε5DELETE␈α∪MA␈α␈IL.TXT␈↓ π7␈ε5SET␈α∩DEFAULT␈α∪PR␈α␈INT
␈β⊃_

␈β↓H␈↓ ↓$␈∧↓H↓$α
u
␈β↓J␈↓ ↓$␈∧↓J↓$Hα␈↓ α→␈∧↓Jα→Hα␈↓ ↔␈∧↓J↔Hα
␈β↓V␈↓ αB␈ε>Nu␈α␈mber␈α∞R␈α␈e␈α↓p␈α␈resentati␈α␈on␈α∞of␈α∞DEC␈α∂Sy␈α↓s␈α␈tem-20␈α∞and␈α∞Relati␈α␈ons␈α∞to␈α∞Pasca␈α↓l
␈β↓\␈↓ ↓D␈ε"124
␈βα⊃␈↓ ↓$␈∧α⊃↓$α
u
␈βαT␈↓ ↓H␈ε>APP␈α↓ENDIX␈α∩D␈α␈.␈α∩Nu␈α␈mber␈α⊃R␈α␈epresent␈α␈a␈α↓ti␈α␈on␈α⊃o␈α␈f␈α∩DEC␈α∩System␈α␈-␈α↓2␈α␈0␈α⊃a␈α↓n␈α␈d␈α⊃Relati␈α␈ons
␈βα␈␈↓ ↓H␈ε>t␈α␈o␈α∞P␈α↓asca␈α↓l␈α␈.
␈ββB␈↓ ¬G␈ε"by␈α
John␈αG.␈αHerriot
␈ββn␈↓ α␈ε"All␈α
n␈α␈um␈α␈bers␈α
are␈α
stored␈α
in␈α
36-bit␈α
w␈α␈ords.␈α∂The␈α
36␈α
bits␈α
of␈α
a␈α
w␈α␈ord␈α
are␈α
n␈α␈um␈α␈bered␈α	from
␈β∧→␈↓ ↓H␈ε"0␈αto␈α35,␈αfrom␈αle$␈αto␈αrigh␈α␈t,␈αjust␈αto␈αiden␈α␈tify␈αthem.
␈β∧Y␈↓ ↓H␈ε2In␈α␈tegers
␈β¬⊗␈↓ α␈ε"Of␈α
the␈α
36␈α	bits␈α
in␈α
a␈α
w␈α␈ord,␈α
bit␈α
0␈α	(the␈α
le$m␈α↓ost␈α
bit)␈α
represen␈α␈ts␈α	the␈α
sign:␈α0␈α
for␈α	positiv␈α␈e
␈β¬A␈↓ ↓H␈ε"and␈α∞1␈α∂for␈α∞negativ␈α␈e.␈α_In␈α∞a␈α∂positiv␈α␈e␈α∂n␈α␈um␈α␈ber␈α∞the␈α∂remaining␈α∞35␈α∂bits␈α∞are␈α∂the␈α∞magnitude
␈β¬m␈↓ ↓H␈ε"of␈α∂the␈α⊂n␈α␈um␈α␈ber␈α⊂stored␈α∂in␈α⊂a␈α⊂binary␈α∂(base␈α⊂2)␈α⊂represen␈α␈tation.␈α≠F␈α⎇or␈α∂example,␈α⊃2␈↓ 
u␈ε"1␈↓ 6␈ε"(the
␈β¬y␈↓ π␈ε%10
␈βε_␈↓ ↓H␈ε"subscript␈αmeans␈αbase␈α10,␈αi.e.,␈αa␈αdecimal␈αn␈α␈um␈α␈ber)␈αis␈αstored␈αas
␈βεf␈↓ βn␈ε"000␈αλ000␈αλ000␈αλ000␈αλ000␈αλ000␈αλ000␈αλ000␈αλ000␈αλ000␈αλ010␈αλ101
␈βπ≤␈↓ βx␈ε6"
␈βπR␈↓ βn␈ε(si␈↓ ∧␈ε(g␈↓ ∧≥␈ε(n␈αλbi␈α↓t
␈βλ"␈↓ ↓H␈ε"(The␈α∞digits␈α∂are␈α∂con␈α␈v␈α␈en␈α␈tionally␈α∞written␈α∂in␈α∂groups␈α∞of␈α∂three␈α∂for␈α∞ease␈α∂of␈α∞reading.␈α_This
␈βλM␈↓ ↓H␈ε"grouping␈α
has␈α
n␈α↓o␈α
signi|cance␈α
for␈α
the␈α
actual␈α
binary␈α
represen␈α␈tation.)␈α∂T␈α⎇o␈α
check␈α
this␈α
n␈α↓ote
␈βλx␈↓ ↓H␈ε"that
␈β	E␈↓ β≡␈ε%34␈↓ ¬(␈ε%5␈↓ εD␈ε%4␈↓ πa␈ε%3␈↓ λ}␈ε%2␈↓ 
≠␈ε%1␈↓ 8␈ε%0
␈β	M␈↓ ↓j␈ε"21␈α
=␈↓ αF␈ε"0␈↓ α`␈ε6α␈↓ β␈ε"2␈↓ βF␈ε"+␈↓ βr␈ε6↓␈αε↓␈αε↓␈↓ ∧$␈ε"+␈↓ ∧P␈ε"0␈↓ ∧j␈ε6α␈↓ ¬⊗␈ε"2␈↓ ¬@␈ε"+␈↓ ¬l␈ε"1␈↓ εε␈ε6α␈↓ ε2␈ε"2␈↓ ε]␈ε"+␈↓ π	␈ε"0␈↓ π#␈ε6α␈↓ πO␈ε"2␈↓ πz␈ε"+␈↓ λ&␈ε"1␈↓ λ@␈ε6α␈↓ λl␈ε"2␈↓ 	↔␈ε"+␈↓ 	C␈ε"0␈↓ 	]␈ε6α␈↓ 
	␈ε"2␈↓ 
4␈ε"+␈↓ 
`␈ε"1␈↓ 
z␈ε6α␈↓ &␈ε"2␈↓ H␈ε".
␈β	o␈↓ αF␈∧	oαFα∩␈↓ ∧P␈∧	o∧Pα∩␈↓ ¬l␈∧	o¬lα∩␈↓ π	␈∧	oπ	α∩␈↓ λ&␈∧	oλ&α∩␈↓ 	C␈∧	o	Cα∩␈↓ 
`␈∧	o
`α∩
␈β
#␈↓ α␈ε"The␈αlargest␈αpositiv␈α␈e␈αin␈α␈teger␈αwhich␈αcan␈αbe␈αstored␈αin␈αa␈αw␈α␈ord␈αis
␈β
p␈↓ β2␈ε%34␈↓ ∧_␈ε%33␈↓ ¬\␈ε%1␈↓ ε3␈ε%0␈↓ π∞␈ε%35
␈β
x␈↓ β ␈ε"2␈↓ βZ␈ε"+␈↓ ∧ε␈ε"2␈↓ ∧@␈ε"+␈↓ ∧l␈ε6↓␈αε↓␈αε↓␈↓ ¬≡␈ε"+␈↓ ¬J␈ε"2␈↓ ¬u␈ε"+␈↓ ε!␈ε"2␈↓ εN␈ε"=␈↓ ε|␈ε"2␈↓ π6␈ε6␈␈ε"␈αλ1␈α
=␈α
3435973836␈↓ 	`␈ε"7␈↓ 
∩␈ε".
␈β∧␈↓ 	r␈ε%10
␈βG␈↓ λ%␈ε%3␈α↓5
␈βM␈↓ ↓H␈ε"An␈α␈y␈αattempt␈αto␈αcreate␈αor␈αstore␈αan␈αin␈α␈teger␈αlarger␈αthan␈↓ λ∪␈ε"2␈↓ λL␈ε6␈␈ε"␈απ1␈αwill␈αproduce␈αerroneous
␈βy␈↓ ↓H␈ε"results␈αand␈αthe␈αuser␈αwill␈αn␈α↓ot␈αalw␈α␈a␈α␈ys␈αbe␈αw␈α␈arned␈αof␈αthe␈αerror.␈α⊂Zero␈αis␈αrepresen␈α␈ted␈αby␈αa
␈β$␈↓ ↓H␈ε"w␈α␈ord␈αcon␈α␈taining␈αall␈α0s.
␈βO␈↓ α␈ε"T␈α⎇o␈α∩sa␈α␈v␈α␈e␈α⊃space␈α∩in␈α∩writing␈α∩w␈α␈ords␈α⊃on␈α∩paper,␈α∪each␈α∩group␈α∩of␈α⊃3␈α∩bits␈α∩is␈α⊃frequen␈α␈tly
␈βz␈↓ ↓H␈ε"con␈α␈v␈α␈erted␈αto␈αa␈αsingle␈αbase-8␈α(octal)␈αdigit,␈αaccording␈αto␈αthe␈αfollo␈α␈wing␈αcode:
␈β
B␈↓ ∧.␈ε"base␈α2␈↓ ¬X␈ε"base␈α8␈↓ πα␈ε"base␈α2␈↓ λ,␈ε"base␈α8
␈β
c␈↓ ∧.␈∧
c∧.αb␈↓ ¬X␈∧
c¬Xαb␈↓ πα␈∧
cπααb␈↓ λ,␈∧
cλ,αb
␈β
m␈↓ ∧D␈ε"000␈↓ ε␈ε"0␈↓ π_␈ε"100␈↓ λT␈ε"4
␈β∞_␈↓ ∧D␈ε"001␈↓ ε␈ε"1␈↓ π_␈ε"101␈↓ λT␈ε"5
␈β∞D␈↓ ∧D␈ε"010␈↓ ε␈ε"2␈↓ π_␈ε"110␈↓ λT␈ε"6
␈β∞o␈↓ ∧D␈ε"011␈↓ ε␈ε"3␈↓ π_␈ε"111␈↓ λT␈ε"7
␈β∂3␈↓ α␈ε"Ho␈α␈w␈α␈ev␈α␈er,␈αin␈α␈tegers␈αare␈αactually␈αstored␈αas␈αbase-2␈αn␈α␈um␈α␈bers.
␈β⊃∨

␈β↓H␈↓ ↓$␈∧↓H↓$α
u
␈β↓J␈↓ ↓$␈∧↓J↓$Hα␈↓ "␈∧↓J"Hα␈↓ ↔␈∧↓J↔Hα
␈β↓V␈↓ ↓G␈ε>Nu␈α␈mber␈α∞R␈α␈e␈α↓p␈α␈resentati␈α␈on␈α∞of␈α∞DEC␈α∂Sy␈α↓s␈α␈tem-20␈α∞and␈α∞Relati␈α␈ons␈α∞to␈α∞Pasca␈α↓l
␈β↓\␈↓ B␈ε"125
␈βα⊃␈↓ ↓$␈∧α⊃↓$α
u
␈βαO␈↓ α␈ε"Using␈α∞octal␈α∞n␈α↓otation,␈α∂the␈α∞decimal␈α∞n␈α␈um␈α␈ber␈α∞21␈α∞is␈α∞represen␈α␈ted␈α∞by␈α∞00000000002␈↓ H␈ε"5␈↓ j␈ε".
␈βα[␈↓ Z␈ε%8
␈βαz␈↓ ↓H␈ε"Note␈αthat␈α2␈↓ β␈ε"5␈↓ β.␈ε"is␈αthe␈αoctal␈αrepresen␈α␈tation␈α
of␈α2␈↓ π⊂␈ε"1␈↓ πB␈ε".
␈ββε␈↓ β∩␈ε%8␈↓ π"␈ε%10
␈ββ%␈↓ α␈ε"Negativ␈α␈e␈α∂n␈α␈um␈α␈bers␈α∂ha␈α␈v␈α␈e␈α∞a␈α∂sign␈α∂bit␈α∂of␈α∞1␈α∂and␈α∂are␈α∂stored␈α∞in␈α∂what␈α∂is␈α∂called␈α∞\t␈α␈w␈α␈o's
␈ββP␈↓ ↓H␈ε"complemen␈α␈t␈α⊂form".␈α≡First␈α⊂w␈α␈e␈α⊃de|ne␈α⊂the␈ε/␈α⊃one's␈α⊂complemen␈α␈t␈ε"␈α⊂of␈α⊃a␈α⊂n␈α␈um␈α␈ber␈α⊃in␈α⊂binary
␈ββ|␈↓ ↓H␈ε"form␈α∞as␈α∞the␈α∂result␈α∞obtained␈α∂by␈α∞changing␈α∂ev␈α␈ery␈α∞0␈α∞to␈α∂1␈α∞and␈α∂ev␈α␈ery␈α∞1␈α∞to␈α∂0.␈α↔The␈ε/␈α∞t␈α␈w␈α␈o's
␈β∧'␈↓ ↓H␈ε/complemen␈α␈t␈ε"␈αof␈αa␈αn␈α␈um␈α␈ber␈αin␈αbinary␈αform␈αis␈αobtained␈αby␈αtaking␈αthe␈αone's␈αcomplemen␈α␈t
␈β∧R␈↓ ↓H␈ε"of␈α∞the␈α∂portion␈α∞of␈α∂the␈α∞n␈α␈um␈α␈ber␈α∂to␈α∞the␈α∂le$␈α∞of␈α∂the␈α∞lo␈α␈w␈α␈est␈α∂order␈α∞1␈α∂and␈α∞lea␈α␈ving␈α∂the␈α∞rest
␈β∧⎇␈↓ ↓H␈ε"of␈α∂the␈α⊂n␈α␈um␈α␈ber␈α⊂unchanged.␈α≤Notice␈α⊂that␈α∂taking␈α⊂the␈α⊂t␈α␈w␈α␈o's␈α⊂complemen␈α␈t␈α⊂of␈α⊂the␈α∂t␈α␈w␈α␈o's
␈β¬(␈↓ ↓H␈ε"complemen␈α␈t␈αof␈αa␈αn␈α␈um␈α␈ber␈αrestores␈αthe␈αoriginal␈αn␈α␈um␈α␈ber.␈α⊂F␈α⎇or␈αexample␈ε6␈α␈␈ε"1␈αis␈αstored␈αas
␈β¬␈␈↓ βn␈ε"111␈αλ111␈αλ111␈αλ111␈αλ111␈αλ111␈αλ111␈αλ111␈αλ111␈αλ111␈αλ111␈αλ111
␈βεB␈↓ ↓H␈ε"which␈αma␈α␈y␈αbe␈αwritten␈αas␈α77777777777␈↓ ε≡␈ε"7␈↓ ε@␈ε".␈α⊂Also,␈ε6␈α␈␈ε"21␈αis␈α
stored␈αas
␈βεN␈↓ ε0␈ε%8
␈βπ_␈↓ βn␈ε"111␈αλ111␈αλ111␈αλ111␈αλ111␈αλ111␈αλ111␈αλ111␈αλ111␈αλ111␈αλ101␈αλ011
␈βπ\␈↓ ↓H␈ε"T␈α⎇o␈α
check␈αthis,␈αn␈α↓ote␈αone␈αcan␈α
tak␈α␈e␈αthe␈αt␈α␈w␈α␈o's␈αcomplemen␈α␈t␈α
of␈αthis␈αn␈α␈um␈α␈ber,␈αobtaining␈α
the
␈βλπ␈↓ ↓H␈ε"represen␈α␈tation␈α	for␈α	+21␈α	which␈α	can␈α
be␈α	ev␈α}aluated␈α	as␈α	previously␈α	explained.␈α∂Alternativ␈α␈ely
␈βλ,␈↓ πS␈ε%35
␈βλ2␈↓ ↓H␈ε"one␈α⊃can␈α⊂regard␈α⊃the␈α⊃v␈α}alue␈α⊃of␈α⊃the␈α⊃sign␈α⊃bit␈α⊂as␈ε6␈α⊃␈␈↓ πA␈ε"2␈↓ λ∧␈ε"and␈α⊃giv␈α␈e␈α⊃the␈α⊃other␈α⊃digits␈α⊂their
␈βλ]␈↓ ↓H␈ε"con␈α␈v␈α␈en␈α␈tional␈αv␈α}alues.␈α⊂Th␈α␈us
␈β	)␈↓ ↓}␈ε%35␈↓ β≥␈ε%34␈↓ ¬∀␈ε%5␈↓ ε$␈ε%4␈↓ π4␈ε%3␈↓ λD␈ε%2␈↓ 	T␈ε%1␈↓ 
d␈ε%0
␈β	1␈↓ ↓H␈ε6␈␈↓ ↓l␈ε"2␈↓ α"␈ε"+␈↓ αK␈ε"1␈↓ αb␈ε6α␈↓ β␈ε"2␈↓ βB␈ε"+␈↓ βj␈ε6↓␈αε↓␈αε↓␈↓ ∧→␈ε"+␈↓ ∧B␈ε"1␈↓ ∧Y␈ε6α␈↓ ¬α␈ε"2␈↓ ¬)␈ε"+␈↓ ¬R␈ε"0␈↓ ¬i␈ε6α␈↓ ε∩␈ε"2␈↓ ε9␈ε"+␈↓ εb␈ε"1␈↓ εy␈ε6α␈↓ π"␈ε"2␈↓ πI␈ε"+␈↓ πr␈ε"0␈↓ λ	␈ε6α␈↓ λ2␈ε"2␈↓ λY␈ε"+␈↓ 	α␈ε"1␈↓ 	→␈ε6α␈↓ 	B␈ε"2␈↓ 	i␈ε"+␈↓ 
∩␈ε"1␈↓ 
)␈ε6α␈↓ 
R␈ε"2␈↓ 
}␈ε"=␈ε6␈α
␈␈ε"21
␈β	R␈↓ αK␈∧	RαKα∩␈↓ ∧B␈∧	R∧Bα∩␈↓ ¬R␈∧	R¬Rα∩␈↓ εb␈∧	Rεbα∩␈↓ πr␈∧	Rπrα∩␈↓ 	α␈∧	R	αα∩␈↓ 
∩␈∧	R
∩α∩
␈β
¬␈↓ ↓H␈ε".
␈β
0␈↓ ↓H␈ε"The␈αsmallest␈αin␈α␈teger␈αwhich␈αcan␈αbe␈αstored␈αin␈αthe␈αDEC␈αSystem-20␈αis
␈β
|␈↓ ¬H␈ε%35
␈β∧␈↓ ¬∩␈ε6␈␈↓ ¬6␈ε"2␈↓ ¬r␈ε"=␈ε6␈α
␈␈ε"3435973836␈↓ πx␈ε"8
␈β⊂␈↓ λ
␈ε%10
␈βX␈↓ ↓H␈ε"and␈α	it␈α
is␈α
represen␈α␈ted␈α
by␈α	40000000000␈↓ εα␈ε"0␈↓ ε%␈ε".␈α∂Note␈α
that␈α
it␈α
cann␈α↓ot␈α	be␈α
produced␈α
by␈α	negating
␈βd␈↓ ε∀␈ε%8
␈ββ␈↓ ↓H␈ε"an␈α␈y␈α
positiv␈α␈e␈α
n␈α␈um␈α␈ber␈α
and␈α
that␈α
its␈α
magnitude␈α
is␈α
one␈α
greater␈αthan␈α
the␈α
largest␈α
positiv␈α␈e
␈β.␈↓ ↓H␈ε"n␈α␈um␈α␈ber.␈α~Remem␈α␈bering␈α⊂that␈α⊂zero␈α∂is␈α⊂represen␈α␈ted␈α∂by␈α⊂all␈α⊂0's,␈α⊂w␈α␈e␈α⊂see␈α∂that␈α⊂taking␈α∂the
␈βY␈↓ ↓H␈ε"negativ␈α␈e␈α
of␈α∞this␈α∞n␈α␈um␈α␈ber␈α∞means␈α∞that␈α
n␈α↓o␈α∞change␈α∞is␈α∞made␈α∞because␈α
there␈α∞is␈α∞n␈α↓o␈α∞digit␈α
1.
␈β
∧␈↓ ↓H␈ε"Th␈α␈us␈αthere␈αis␈αonly␈αone␈αzero␈αrepresen␈α␈tation␈αand␈αits␈αsign␈αis␈αpositiv␈α␈e.
␈β
0␈↓ α␈ε"An␈α↓other␈α∞w␈α␈a␈α␈y␈α∂to␈α∞think␈α∞of␈α∞the␈α∂represen␈α␈tation␈α∞of␈α∞negativ␈α␈e␈α∂n␈α␈um␈α␈bers␈α∞is␈α∞to␈α∞consider
␈β
[␈↓ ↓H␈ε"a␈α⊃36-place␈α⊃binary␈α⊃accum␈α␈ulating␈α⊃register␈α⊃(the␈α∩base-2␈α⊃equiv␈α}alen␈α␈t␈α⊃of␈α⊃the␈α⊃decimal␈α⊃ac-
␈β∞ε␈↓ ↓H␈ε"cum␈α␈ulating␈α∂register␈α⊂in␈α⊂a␈α⊂small␈α⊂mechanical␈α⊂calculator).␈α≠If␈α⊂one␈α⊂starts␈α⊂with␈α⊂all␈α∂zeros
␈β∞1␈↓ ↓H␈ε"in␈α∞their␈α
register,␈α∂one␈α∞gets␈α∞the␈α
represen␈α␈tation␈α∞for␈ε6␈α∞␈␈ε"1␈α∞by␈α∞subtracting␈α∞1.␈α⊗The␈α
process
␈β∞\␈↓ ↓H␈ε"requires␈α
a␈α
\borro␈α␈w"␈α
to␈α
propagate␈α
to␈α
the␈α
le$␈α
all␈α
the␈α
w␈α␈a␈α␈y␈α
across␈α
the␈α
register,␈α
lea␈α␈ving␈α
all
␈β∂λ␈↓ ↓H␈ε"ones,␈α
just␈α
as␈α∞on␈α
a␈α
decimal␈α
calculator␈α∞this␈α
w␈α␈ould␈α
lea␈α␈v␈α␈e␈α
all␈α∞nines.␈α∪Con␈α␈tin␈α␈ued␈α
subtrac-
␈β∂3␈↓ ↓H␈ε"tions␈αwill␈αgiv␈α␈e␈αthe␈αrepresen␈α␈tations␈αfor␈ε6␈α␈␈ε"2,␈ε6␈αε␈␈ε"3,␈↓ π)␈ε".␈αε.␈αε.␈↓ πS␈ε".
␈β⊃∨

␈β↓H␈↓ ↓$␈∧↓H↓$α
u
␈β↓J␈↓ ↓$␈∧↓J↓$Hα␈↓ α→␈∧↓Jα→Hα␈↓ ↔␈∧↓J↔Hα
␈β↓V␈↓ αB␈ε>Nu␈α␈mber␈α∞R␈α␈e␈α↓p␈α␈resentati␈α␈on␈α∞of␈α∞DEC␈α∂Sy␈α↓s␈α␈tem-20␈α∞and␈α∞Relati␈α␈ons␈α∞to␈α∞Pasca␈α↓l
␈β↓\␈↓ ↓D␈ε"126
␈βα⊃␈↓ ↓$␈∧α⊃↓$α
u
␈βαO␈↓ ↓H␈ε2Real␈αNum␈α␈bers
␈ββ∂␈↓ α␈ε"Num␈α␈bers␈α∂in␈α⊂man␈α␈y␈α∂scien␈α␈ti|c␈α∂computations␈α∂will␈α∂gro␈α␈w␈α⊂in␈α∂magnitude␈α∂w␈α␈ell␈α∂bey␈α␈ond
␈ββ:␈↓ ↓H␈ε"the␈α⊃range␈α∩of␈α∩in␈α␈tegers␈α⊃described␈α∩abo␈α␈v␈α␈e.␈α!T␈α⎇o␈α∩pro␈α␈vide␈α⊃for␈α∩this,␈α∪DEC␈α∩System-20␈α⊃and
␈ββf␈↓ ↓H␈ε"m␈α↓ost␈α∞scien␈α␈ti|c␈α∞computers␈α∞ha␈α␈v␈α␈e␈α∞a␈α∞second␈α∂w␈α␈a␈α␈y␈α∞to␈α∞represen␈α␈t␈α∞n␈α␈um␈α␈bers␈α∞←␈α∞the␈α∞so-called
␈β∧⊃␈↓ ↓H␈ε/⎇oating-poin␈α␈t␈α∞represen␈α␈tation␈ε".␈α_The␈α∞signi|cance␈α∂of␈α∞the␈α∂name␈α∞\⎇oating-poin␈α␈t"␈α∂is␈α∞that
␈β∧<␈↓ ↓H␈ε"the␈ε/␈α
radix␈αpoin␈α␈t␈ε"␈α
←␈αfor␈αexample,␈αthe␈α
decimal␈αpoin␈α␈t␈α
in␈αbase-10␈αn␈α␈um␈α␈bers␈α
←␈αis␈α
permitted
␈β∧g␈↓ ↓H␈ε"to␈α⎇oat␈αto␈α
the␈αrigh␈α␈t␈αor␈α
le$,␈αth␈α␈us␈αpermitting␈α
scaling␈αof␈αn␈α␈um␈α␈bers␈αby␈α
v␈α}arious␈αpo␈α␈w␈α␈ers␈αof
␈β¬∩␈↓ ↓H␈ε"the␈α∞radix.␈α↔Alth␈α↓ough␈α∞a␈α∞decimal␈α∂poin␈α␈t␈α∞that␈α∞has␈α∞⎇oated␈α∂o{␈α∞to␈α∞the␈α∂le$␈α∞will␈α∞produce␈α∞a
␈β¬>␈↓ ↓H␈ε"n␈α␈um␈α␈ber␈αwritten␈αlik␈α␈e␈α
0.001345,␈αthe␈αn␈α␈um␈α␈bers␈α
are␈αactually␈αrepresen␈α␈ted␈α
in␈αa␈αform␈αcloser
␈β¬c␈↓ λZ␈ε9␈␈ε%␈α␈2
␈β¬i␈↓ ↓H␈ε"to␈αwhat␈αis␈αo$en␈αcalled␈ε/␈αscien␈α␈ti|c␈αn␈α↓otation␈ε",␈αhere␈α.1345␈ε6␈αλα␈ε"␈αλ1␈↓ λH␈ε"0␈↓ 	λ␈ε".
␈βε↔␈↓ α␈ε"In␈α
DEC␈αSytem-20␈α
⎇oating-poin␈α␈t␈αn␈α␈um␈α␈bers␈α
are␈α
represen␈α␈ted␈αin␈α
base-2␈αn␈α↓otation,␈α
i.e.,
␈βεB␈↓ ↓H␈ε"the␈α∂radix␈α∂or␈α∂n␈α␈um␈α␈ber␈α∂base␈α∂is␈α⊂2.␈α→As␈α∂in␈α∂the␈α⊂case␈α∂of␈α∂in␈α␈tegers,␈α⊂bit␈α∂0␈α∂(the␈α∂le$m␈α↓ost␈α∂bit)
␈βεn␈↓ ↓H␈ε"represen␈α␈ts␈α
the␈α
sign,␈α0␈α
for␈α
positiv␈α␈e␈α
and␈α1␈α
for␈α
negativ␈α␈e.␈α⊂The␈α
remaining␈α
35␈α
bits␈α
represen␈α␈t
␈βπ→␈↓ ↓H␈ε"an␈α∞8-digit␈α∞exponen␈α␈t␈α∞and␈α∂a␈α∞27-bit␈α∞fraction.␈α↔Bits␈α∞9␈α∞to␈α∞35␈α∂are␈α∞in␈α␈terpreted␈α∞as␈α∞a␈α∞binary
␈βπD␈↓ ↓H␈ε"fraction,␈αi.e.,␈α
27␈α
binary␈αdigits␈α
with␈αa␈α
binary␈αpoin␈α␈t␈α
at␈α
the␈αle$-hand␈α
end.␈α⊃This␈α
part␈αis
␈βπo␈↓ ↓H␈ε"called␈αthe␈ε/␈αman␈α␈tissa␈ε".
␈βλ≡␈↓ α␈ε"Bits␈α
1␈αto␈α
8␈α
are␈α
in␈α␈terpreted␈αas␈α
an␈α
in␈α␈tegral␈α
exponen␈α␈t␈α
in␈αexcess␈α
128(20␈↓ 
⊗␈ε"0␈↓ 
9␈ε")␈α
code.␈α∂This
␈βλ*␈↓ 
(␈ε%8
␈βλI␈↓ ↓H␈ε"means␈α
that␈α
bits␈α
1↑8␈α
ma␈α␈y␈α
be␈α
th␈α↓ough␈α␈t␈α
of␈α
as␈α
giving␈α	the␈α
binary␈α
(base-2)␈α
represen␈α␈tation␈α
of
␈βλt␈↓ ↓H␈ε"a␈αn␈α↓onnegativ␈α␈e␈α
in␈α␈teger␈αin␈α
the␈α
range␈↓ ¬s␈ε"0␈↓ ε2␈ε"to␈α25␈↓ πα␈ε"5␈↓ π4␈ε",␈α
inclusiv␈α␈e.␈α∩This␈α
in␈α␈teger␈αis␈α
called␈αthe
␈β	↓␈↓ ε¬␈ε%10␈↓ π∀␈ε%1␈α↓0
␈β	∨␈↓ ↓H␈ε/biased␈αexponen␈α␈t␈ε"␈α
for␈αreasons␈α
n␈α↓o␈α␈w␈αto␈α
be␈αexplained.␈α∩If␈αthis␈α
in␈α␈teger␈αw␈α␈ere␈α
tak␈α␈en␈αdirectly
␈β	K␈↓ ↓H␈ε"as␈α∞the␈α∂exponen␈α␈t,␈α⊂w␈α␈e␈α∞w␈α␈ould␈α∂ha␈α␈v␈α␈e␈α∂n␈α↓o␈α∞negativ␈α␈e␈α∂exponen␈α␈ts,␈α⊂and␈α∞our␈α∂range␈α∂of␈α∞⎇oating-
␈β	p␈↓ π⎇␈ε9␈␈ε%100
␈β	v␈↓ ↓H␈ε"poin␈α␈t␈α
n␈α␈um␈α␈bers␈α∞could␈α
n␈α↓ot␈α
include␈α∞such␈α
n␈α␈um␈α␈bers␈α∞as␈↓ πk␈ε"2␈↓ λJ␈ε".␈α∀It␈α∞is␈α
desirable␈α∞to␈α
ha␈α␈v␈α␈e␈α
an
␈β
!␈↓ ↓H␈ε"exponen␈α␈t␈αrange␈αwhich␈αis␈αappro␈α␈ximately␈αsymmetric␈αabout␈αzero.␈α⊂One␈αobtains␈αthe␈ε/␈αtrue
␈β
L␈↓ ↓H␈ε/exponen␈α␈t␈ε"␈αof␈α
the␈α⎇oating-poin␈α␈t␈αn␈α␈um␈α␈ber␈α
by␈αsubtracting␈α
128␈αfrom␈α
the␈αbiased␈αexponen␈α␈t
␈β
w␈↓ ↓H␈ε"represen␈α␈ted␈αby␈α
bits␈α1␈αto␈α
8;␈α
this␈αexplains␈α
the␈αname,␈α
excess␈α128␈α
code.␈α⊃As␈αa␈α
result,␈αthe
␈β#␈↓ ↓H␈ε"true␈αexponen␈α␈ts␈αrange␈αfrom␈↓ ∧u␈ε6␈␈ε"128␈↓ ¬[␈ε"to␈α127.
␈βQ␈↓ α␈ε"As␈α⊂n␈α↓oted␈α⊂abo␈α␈v␈α␈e,␈α⊂the␈α⊂27␈α⊂bits␈α⊂9␈α∂to␈α⊂35␈α⊂are␈α⊂regarded␈α⊂as␈α∂a␈α⊂binary␈α⊂fraction␈α⊂with␈α∂a
␈β|␈↓ ↓H␈ε"binary␈α∞poin␈α␈t␈α∞at␈α∞the␈α∞le$-hand␈α∞end.␈α↔If␈α∞the␈α∞⎇oating␈α∞n␈α␈um␈α␈ber␈α∞zero␈α∞is␈α∞being␈α∞represen␈α␈ted
␈β'␈↓ ↓H␈ε"all␈α⊂the␈α⊃bits␈α⊃are␈α⊂0.␈α≡Otherwise,␈α∩at␈α⊂least␈α⊃one␈α⊃of␈α⊂the␈α⊃binary␈α⊃digits␈α⊂m␈α␈ust␈α⊃be␈α⊂n␈α↓onzero.
␈βS␈↓ ↓H␈ε"A␈α∂⎇oating-poin␈α␈t␈α∞n␈α␈um␈α␈ber␈α∂is␈α∂said␈α∂to␈α∂be␈ε/␈α∂n␈α↓ormalized␈ε"␈α∂if␈α∂the␈α∂le$-hand␈α∂binary␈α∂digit␈α∞(the
␈β}␈↓ ↓H␈ε"m␈α↓ost␈αsigni|can␈α␈t␈αdigit),␈αbit␈α9,␈αis␈α1.␈α⊂In␈αDEC␈αSystem-20␈αthe␈α⎇oating-poin␈α␈t␈αn␈α␈um␈α␈bers␈αare
␈β
)␈↓ ↓H␈ε"ordinarily␈αλn␈α↓ormalized␈α	and␈αλw␈α␈e␈α	shall␈αλn␈α↓ot␈α	consider␈α	an␈α␈y␈αλother␈α	forms.␈α∂Hence,␈α	the␈αλman␈α␈tissa,
␈β
T␈↓ ↓H␈ε"M,␈αma␈α␈y␈αbe␈αpositiv␈α␈e␈αor␈αnegativ␈α␈e␈αand␈αits␈αmagnitude␈αlies␈αin␈αthe␈αrange␈α1/2␈ε6␈α
∀␈α
j␈↓ 
d␈ε(M␈↓ ␈ε6j␈ε"␈α
<␈α
1.
␈β∞β␈↓ α␈ε"Negativ␈α␈e␈α∞⎇oating-poin␈α␈t␈α∂n␈α␈um␈α␈bers␈α∞are␈α∞stored␈α∞in␈α∂t␈α␈w␈α␈o's␈α∞complemen␈α␈t␈α∞form.␈α↔Th␈α␈us␈α∞a
␈β∞.␈↓ ↓H␈ε"negativ␈α␈e␈αn␈α␈um␈α␈ber␈α
has␈αa␈α1␈αfor␈αits␈αsign␈αand␈αthe␈αt␈α␈w␈α␈o's␈αcomplemen␈α␈t␈αof␈αthe␈αremaining␈α
bits.
␈β∞Y␈↓ ↓H␈ε"Since␈α	ev␈α␈ery␈α
fraction␈α
(except␈α
zero)␈α	ordinarily␈α
con␈α␈tains␈α
a␈α	1,␈αit␈α	has␈α
the␈α
one's␈α	complemen␈α␈t
␈β∂∧␈↓ ↓H␈ε"of␈αthe␈αexponen␈α␈t␈αcode␈αin␈αbits␈α1␈αto␈α8.
␈β∂3␈↓ α␈ε"W␈α⎇e␈α∞n␈α↓o␈α␈w␈α
giv␈α␈e␈α∞the␈α∞⎇oating-poin␈α␈t␈α∞represen␈α␈tation␈α
of␈α∞some␈α∞sample␈α∞n␈α␈um␈α␈bers.␈α∃As␈α
w␈α␈e
␈β⊃∨

␈β↓H␈↓ ↓$␈∧↓H↓$α
u
␈β↓J␈↓ ↓$␈∧↓J↓$Hα␈↓ "␈∧↓J"Hα␈↓ ↔␈∧↓J↔Hα
␈β↓V␈↓ ↓G␈ε>Nu␈α␈mber␈α∞R␈α␈e␈α↓p␈α␈resentati␈α␈on␈α∞of␈α∞DEC␈α∂Sy␈α↓s␈α␈tem-20␈α∞and␈α∞Relati␈α␈ons␈α∞to␈α∞Pasca␈α↓l
␈β↓\␈↓ B␈ε"127
␈βα⊃␈↓ ↓$␈∧α⊃↓$α
u
␈βαO␈↓ ↓H␈ε"said␈αλbefore,␈α	the␈αλn␈α␈um␈α␈ber␈αλzero␈αλis␈αλrepresen␈α␈ted␈α	by␈αλ36␈αλzero␈αλbits.␈α∂Th␈α␈us␈αλzero␈αλis␈αλrepresen␈α␈ted␈αλby
␈βαz␈↓ ↓H␈ε"the␈αsame␈αw␈α␈ord␈αin␈α⎇oating-poin␈α␈t␈αor␈αin␈α␈teger␈αform.␈α⊂No␈αother␈αn␈α␈um␈α␈ber␈αhas␈αthis␈αpropert␈α␈y.
␈ββ%␈↓ ↓H␈ε"The␈αn␈α␈um␈α␈ber␈α1.0␈αis␈αrepresen␈α␈ted␈αby␈αthe␈αw␈α␈ord
␈ββl␈↓ β␈ε"0␈↓ ∧ε␈ε"10␈α000␈α001␈↓ ¬v␈ε"100␈α000␈α000␈α000␈α000␈α000␈α000␈α000␈α000
␈β∧↔␈↓ β␈ε6"␈↓ ∧ε␈ε↓|␈↓ ∧9␈ε↓{z␈↓ ∧{␈ε↓⎇␈↓ ¬v␈ε↓|␈↓ π3␈ε↓{z␈↓ λ␈␈ε↓⎇
␈β∧0␈↓ ∧⊗␈∧∧0∧⊗ε#␈↓ ∧Y␈∧∧0∧Yε#␈↓ εε␈∧∧0εεε↓-␈↓ πS␈∧∧0πSε↓-
␈β∧B␈↓ β␈ε"sign␈↓ ∧≥␈ε"biased␈↓ π
␈ε"man␈α␈tissa
␈β∧m␈↓ β␈ε"bit␈↓ ∧∞␈ε"exponen␈α␈t
␈β¬2␈↓ ↓H␈ε"T␈α⎇o␈α
check␈αthis,␈αn␈α↓ote␈αthe␈αsign␈αis␈α
0␈α(represen␈α␈ting␈α+).␈α⊂The␈α
biased␈αexponen␈α␈t␈αis␈α1000000␈↓ R␈ε"1
␈β¬>␈↓ d␈ε%2
␈β¬]␈↓ ↓H␈ε"or␈α∞12␈↓ α~␈ε"9␈↓ αL␈ε".␈α⊗Subtracting␈α∞12␈↓ ∧V␈ε"8␈↓ ¬↔␈ε"yields␈α∞1␈α∞as␈α∞the␈α∞true␈α∞exponen␈α␈t.␈α↔Putting␈α∞a␈α∞binary␈α∞poin␈α␈t
␈β¬j␈↓ α,␈ε%10␈↓ ∧h␈ε%1␈α↓0
␈βε∧␈↓ 	}␈ε%1
␈βελ␈↓ ↓H␈ε"at␈α
the␈α∞le$␈α
of␈α
the␈α∞man␈α␈tissa␈α
giv␈α␈es␈α∞the␈α
binary␈α∞fraction␈α
wh␈α↓ose␈α∞v␈α}alue␈α
is␈↓ 
∩␈ε".␈α∀(This␈α
binary
␈βε→␈↓ 	}␈ε%2
␈βε≤␈↓ 	}␈∧ε≤	}α⊂
␈βε4␈↓ ↓H␈ε"fraction␈α∂could␈α⊂be␈α⊂written␈α∂m␈α↓ore␈α⊂concisely␈α∂in␈α⊂octal␈α⊂form␈α∂as␈α⊂.40000000␈↓ 
⊂␈ε"0␈↓ 
3␈ε".)␈α≠Th␈α␈us␈α∂the
␈βε@␈↓ 
"␈ε%8
␈βε←␈↓ ↓H␈ε"abo␈α␈v␈α␈e␈α
w␈α␈ord␈α
represen␈α␈ts␈α∞+(1/2)␈ε6␈α	α␈ε"␈αλ2␈α
=␈α1.0.␈α∀T␈α⎇o␈α
sa␈α␈v␈α␈e␈α
writing,␈α∞the␈α
abo␈α␈v␈α␈e␈α∞w␈α␈ord␈α
ma␈α␈y␈α
be
␈βπ
␈↓ ↓H␈ε"written␈αin␈αoctal␈αform␈α20140000000␈↓ ¬d␈ε"0␈↓ εε␈ε".␈α⊂The␈αn␈α␈um␈α␈ber␈ε6␈α␈␈ε"1.0␈αis␈αrepresen␈α␈ted␈αby␈αthe␈αw␈α␈ord
␈βπ⊗␈↓ ¬v␈ε%8
␈βπ|␈↓ αO␈ε"1␈↓ βU␈ε"01␈α111␈α110␈↓ ε(␈ε"100␈α000␈α000␈α000␈α000␈α000␈α000␈α000␈α000
␈βλ'␈↓ αO␈ε6"␈↓ βU␈ε↓|␈↓ ∧(␈ε↓{z␈↓ ¬␈ε↓⎇␈↓ ε(␈ε↓|␈↓ πd␈ε↓{z␈↓ 	1␈ε↓⎇
␈βλ@␈↓ βe␈∧λ@βeεD␈↓ ∧I␈∧λ@∧IεD␈↓ ε8␈∧λ@ε8ε↓-␈↓ λ¬␈∧λ@λ¬ε↓-
␈βλR␈↓ αO␈ε"sign␈↓ ∧
␈ε"biased␈↓ π<␈ε"man␈α␈tissa
␈βλ⎇␈↓ αO␈ε"bit␈↓ β}␈ε"exponen␈α␈t␈↓ π⊃␈ε"(2's␈αcomplemen␈α␈t)
␈β	(␈↓ βU␈ε"(1's␈αcomplemen␈α␈t)
␈β	␈␈↓ ↓H␈ε"T␈α⎇o␈α
check␈α
this,␈α
n␈α↓ote␈α
that␈α
the␈α
sign␈α
is␈α
1␈α
(represen␈α␈ting␈ε6␈α
␈␈ε").␈α∪The␈α
biased␈α
exponen␈α␈t␈α
(a$er
␈β
*␈↓ ↓H␈ε"taking␈α
one's␈α∞complemen␈α␈t)␈α
is␈α
10000001␈α
=␈α12␈↓ π↓␈ε"9␈↓ πA␈ε"and␈α
the␈α∞true␈α
exponen␈α␈t␈α∞is␈α
1.␈α∀T␈α⎇aking
␈β
7␈↓ π∪␈ε%1␈α↓0
␈β
V␈↓ ↓H␈ε"the␈αt␈α␈w␈α␈o's␈α
complemen␈α␈t␈α
of␈αthe␈α
man␈α␈tissa␈α
w␈α␈e␈α
see␈αthat␈α
it␈α
is␈αunchanged␈α
(in␈α
this␈αexample)
␈β
|␈↓ λM␈ε%1
␈β↓␈↓ ↓H␈ε"and␈αits␈α
v␈α}alue␈α
is␈α1/2.␈α∩Th␈α␈us␈α
the␈α
abo␈α␈v␈α␈e␈αw␈α␈ord␈α
represen␈α␈ts␈ε6␈α
␈␈ε"(␈↓ λ`␈ε")␈ε6␈αλα␈ε"␈α	2␈α=␈ε6␈α␈␈ε"1.0.␈α∩It␈α
ma␈α␈y␈αbe
␈β∩␈↓ λM␈ε%2
␈β∃␈↓ λM␈∧∃λMα⊂
␈β,␈↓ ↓H␈ε"written␈αin␈αoctal␈αform␈α57640000000␈↓ ¬d␈ε"0␈↓ εε␈ε".
␈β8␈↓ ¬v␈ε%8
␈βW␈↓ α␈ε"Sev␈α␈eral␈α
examples␈αof␈α
⎇oating-poin␈α␈t␈αn␈α␈um␈α␈bers␈α
are␈α
n␈α↓o␈α␈w␈αgiv␈α␈en␈α
in␈α
octal␈αn␈α↓otation,␈α
with
␈βα␈↓ ↓H␈ε"the␈αcon|rmation␈αle$␈αto␈αthe␈αreader.
␈βY␈↓ ↓H␈ε"decimal␈↓ ∧*␈ε"⎇oating-poin␈α␈t␈↓ ε	␈ε"(octal␈αn␈α↓otation)
␈β{␈↓ ↓H␈∧{↓Hαx
␈β
α␈↓ ∧*␈∧
α∧*α↓S
␈β
∧␈↓ α∩␈ε"0.0␈↓ β>␈ε"=␈↓ ∧*␈ε"000000000000
␈β
0␈↓ α∩␈ε"1.0␈↓ β>␈ε"=␈↓ ∧*␈ε"201400000000
␈β
[␈↓ αε␈ε"-1.0␈↓ β>␈ε"=␈↓ ∧*␈ε"576400000000
␈β∞ε␈↓ α␈ε"23.0␈↓ β>␈ε"=␈↓ ∧*␈ε"205560000000
␈β∞1␈↓ ↓t␈ε"-23.0␈↓ β>␈ε"=␈↓ ∧*␈ε"572220000000
␈β∞\␈↓ α∩␈ε"0.0␈↓ α@␈ε"625␈↓ β>␈ε"=␈↓ ∧*␈ε"175400000000
␈β∂λ␈↓ αε␈ε"-0.0␈↓ α@␈ε"625␈↓ β>␈ε"=␈↓ ∧*␈ε"602400000000
␈β∂3␈↓ α␈ε"16.0␈↓ β>␈ε"=␈↓ ∧*␈ε"205400000000
␈β⊃_

␈β↓H␈↓ ↓$␈∧↓H↓$α
u
␈β↓J␈↓ ↓$␈∧↓J↓$Hα␈↓ α→␈∧↓Jα→Hα␈↓ ↔␈∧↓J↔Hα
␈β↓V␈↓ αB␈ε>Nu␈α␈mber␈α∞R␈α␈e␈α↓p␈α␈resentati␈α␈on␈α∞of␈α∞DEC␈α∂Sy␈α↓s␈α␈tem-20␈α∞and␈α∞Relati␈α␈ons␈α∞to␈α∞Pasca␈α↓l
␈β↓\␈↓ ↓D␈ε"128
␈βα⊃␈↓ ↓$␈∧α⊃↓$α
u
␈βαM␈↓ ↓t␈ε"-16.0␈↓ β>␈ε"=␈↓ ∧*␈ε"572400000000
␈βαx␈↓ ↓n␈ε"256.0␈↓ β>␈ε"=␈↓ ∧*␈ε"211400000000
␈ββ#␈↓ ↓b␈ε"-256.0␈↓ β>␈ε"=␈↓ ∧*␈ε"566400000000
␈ββO␈↓ α∩␈ε"3.5␈↓ β>␈ε"=␈↓ ∧*␈ε"202700000000
␈ββz␈↓ αε␈ε"-3.5␈↓ β>␈ε"=␈↓ ∧*␈ε"575100000000
␈β∧%␈↓ ↓n␈ε"153.0␈↓ β>␈ε"=␈↓ ∧*␈ε"210462000000
␈β∧P␈↓ ↓b␈ε"-153.0␈↓ β>␈ε"=␈↓ ∧*␈ε"567316000000
␈β¬∪␈↓ α␈ε"Notice␈α
that␈α	in␈α
checking␈α
the␈α
negativ␈α␈e␈α	n␈α␈um␈α␈bers␈α
one␈α
can␈α	tak␈α␈e␈α
the␈α
t␈α␈w␈α␈o's␈α	complemen␈α␈t
␈β¬>␈↓ ↓H␈ε"of␈αthe␈αn␈α␈um␈α␈ber␈αin␈αoctal␈αn␈α↓otation␈αdirectly␈αin␈αthe␈αfollo␈α␈wing␈αw␈α␈a␈α␈y:
␈β¬i␈↓ ↓Z␈ε6∂␈↓ ↓}␈ε"tak␈α␈e␈αthe␈α7's␈αcomplemen␈α␈t␈αof␈αall␈αdigits␈αto␈αthe␈αle$␈αof␈αthe␈αlo␈α␈w␈α␈est␈αorder␈αn␈α↓on-zero␈αdigit
␈βε∀␈↓ α4␈ε"(i.e.,␈αsubtract␈αeach␈αdigit␈αfrom␈α7)
␈βε?␈↓ ↓Z␈ε6∂␈↓ ↓}␈ε"tak␈α␈e␈αthe␈α8's␈αcomplemen␈α␈t␈αof␈αthe␈αlo␈α␈w␈α␈est␈αorder␈αn␈α↓on-zero␈αdigit.
␈βπ4␈↓ 
?␈ε%127
␈βπ:␈↓ α␈ε"The␈α⊂largest␈α⊃⎇oating-poin␈α␈t␈α⊂n␈α␈um␈α␈ber␈α⊂is␈α⊂37777777777␈↓ λ*␈ε"7␈↓ λ]␈ε"represen␈α␈ting␈↓ 
-␈ε"2␈↓ 
y␈ε6α␈ε"␈α(1␈ε6␈α
␈
␈βπF␈↓ λ<␈ε%8
␈βπ←␈↓ ↓Z␈ε9␈␈ε%␈α␈27␈↓ βt␈ε%39
␈βπe␈↓ ↓H␈ε"2␈↓ α↔␈ε")␈α
=␈α.170␈ε6␈αλα␈ε"␈αλ1␈↓ βb␈ε"0␈↓ ∧∀␈ε".␈α⊂The␈αsmallest␈αpositiv␈α␈e␈α⎇oating-poin␈α␈t␈αn␈α␈um␈α␈ber␈α
is␈α00040000000␈↓ R␈ε"0
␈βπq␈↓ d␈ε%8
␈βλ
␈↓ β/␈ε9␈␈ε%␈α␈12␈α↓9␈↓ ¬o␈ε9␈␈ε%38
␈βλ⊂␈↓ ↓H␈ε"represem␈α␈ting␈↓ β≥␈ε"2␈↓ ∧¬␈ε"=␈α
.14693␈ε6␈αλα␈ε"␈αλ1␈↓ ¬]␈ε"0␈↓ ε-␈ε".␈α⊂The␈αnegativ␈α␈es␈αof␈αthese␈αt␈α␈w␈α␈o␈αn␈α␈um␈α␈bers␈αare␈αthe
␈βλ;␈↓ ↓H␈ε"extremes␈αin␈α
magnitude␈α
of␈α
represen␈α␈table␈αnegativ␈α␈e␈α
n␈α␈um␈α␈bers.␈α∩They␈α
are␈α
represen␈α␈ted␈αby
␈βλa␈↓ λB␈ε9␈␈ε%27
␈βλg␈↓ ↓H␈ε"40000000000␈↓ β∞␈ε"1␈↓ β>␈ε"and␈α
77740000000␈↓ ¬K␈ε"0␈↓ ¬|␈ε"respectiv␈α␈ely.␈α∀Since␈↓ λ0␈ε"2␈↓ 	∞␈ε"is␈α
appro␈α␈ximately␈α
equal
␈βλs␈↓ β ␈ε%8␈↓ ¬]␈ε%8
␈β	␈↓ α~␈ε9␈␈ε%␈α␈8␈↓ 
$␈ε9␈␈ε%8
␈β	∩␈↓ ↓H␈ε"to␈α∞1␈↓ αλ␈ε"9␈↓ αH␈ε",␈α∂the␈α∞precision␈α∞of␈α∂a␈α∞27␈α∞bit␈α∞binary␈α∂n␈α␈um␈α␈ber␈α∞is␈α∞appro␈α␈ximately␈α∞1␈↓ 
∩␈ε"0␈↓ 
S␈ε".␈α⊗Th␈α␈us␈α∞27
␈β	=␈↓ ↓H␈ε"binary␈α	bits␈α	are␈α	roughly␈α	equiv␈α}alen␈α␈t␈α	to␈α	8␈α	decimal␈α	digits.␈α∂F␈α⎇or␈α	Pascal␈α	at␈α	L␈α␈OTS␈α	the␈α	default
␈β	h␈↓ ↓H␈ε"condition␈α
for␈α
a␈α∞WRITE␈α
or␈α
WRITELN␈α∞command␈α
causes␈α
real␈α
n␈α␈um␈α␈bers␈α∞to␈α
be␈α
prin␈α␈ted
␈β
∪␈↓ ↓H␈ε"out␈α
in␈α∞the␈α∞form␈ε(␈α∞x␈ε".␈ε(xxxxxxxxx␈↓ ¬∨␈ε(E␈↓ ¬;␈ε6ε␈↓ ¬←␈ε(y␈↓ ¬r␈ε(y␈↓ ε¬␈ε".␈α∃That␈α∞is,␈α∂there␈α
are␈α∞9␈α∞digits␈α∞to␈α∞the␈α∞righ␈α␈t␈α∞of␈α
the
␈β
?␈↓ ↓H␈ε"decimal␈α∂poin␈α␈t␈α∂and␈α∂one␈α∂digit␈α∂to␈α∂the␈α∂le$␈α∂of␈α∂the␈α∂decimal␈α∂poin␈α␈t.␈α~Here␈↓ 
λ␈ε(y␈↓ 
~␈ε(y␈↓ 
<␈ε"den␈α↓otes␈α∂the
␈β
j␈↓ ↓H␈ε"po␈α␈w␈α␈er␈α
of␈α
10␈α
which␈αm␈α␈ultiplies␈α
the␈α
prin␈α␈ted␈αman␈α␈tissa.␈α∂W␈α⎇e␈α
ma␈α␈y␈αtherefore␈α
expect␈α
that␈α
the
␈β∃␈↓ ↓H␈ε"righ␈α␈tm␈α↓ost␈αt␈α␈w␈α␈o␈αdigits␈αof␈αthe␈αman␈α␈tissa␈αare␈αn␈α↓ot␈αreliable.
␈β@␈↓ α␈ε"V␈α⎇ery␈α⊃few␈α⊂n␈α␈um␈α␈bers␈α⊃can␈α⊂be␈α⊃represen␈α␈ted␈α⊂exactly␈α⊃with␈α⊂8␈α⊃decimal␈α⊂digits.␈α≡F␈α⎇or␈α⊂ex-
␈βg␈↓ αM␈ε%1␈↓ λL␈ε%1
␈βk␈↓ ↓H␈ε"ample,␈↓ αx␈ε"=␈α⊃.01250000␈↓ ∧G␈ε"0␈↓ ¬
␈ε"is␈α⊂exactly␈α⊂represen␈α␈ted,␈α⊃but␈↓ λp␈ε"=␈α⊃.3333333␈↓ 
-␈ε"3␈↓ 
o␈ε"only␈α⊂ap-
␈βx␈↓ ∧Y␈ε%1␈α↓0␈↓ 
?␈ε%10
␈β|␈↓ αE␈ε%80␈↓ λL␈ε%3
␈β␈↓ αE␈∧αEα∨␈↓ λL␈∧λLα⊂
␈β↔␈↓ ↓H␈ε"pro␈α␈ximately.␈α⊃In␈αthe␈αsame␈α
w␈α␈a␈α␈y␈αv␈α␈ery␈αfew␈α
n␈α␈um␈α␈bers␈αcan␈αbe␈αexactly␈α
represen␈α␈ted␈αwith␈α27
␈β=␈↓ ε⎇␈ε%1
␈βB␈↓ ↓H␈ε"binary␈αdigits␈α
(9␈α
octal␈α
digits).␈α∩F␈α⎇or␈α
example,␈↓ π≤␈ε"=␈α.10000000␈↓ λe␈ε"0␈↓ 	∃␈ε"is␈α
excatly␈αrepresen␈α␈ted,
␈βN␈↓ λw␈ε%8
␈βS␈↓ ε⎇␈ε%8
␈βV␈↓ ε⎇␈∧Vε⎇α⊂
␈βh␈↓ αq␈ε%1
␈βm␈↓ ↓H␈ε"but␈↓ βt␈ε"only␈α⊂appro␈α␈ximately.␈α≡Moreo␈α␈v␈α␈er,␈α⊃some␈α⊃n␈α␈um␈α␈bers␈α⊂that␈α⊃are␈α⊂exactly
␈β}␈↓ α∩␈ε%3=.2525␈α↓2525␈↓ βA␈ε%3
␈β
↓␈↓ α∩␈∧
↓α∩α↓M
␈β
π␈↓ βQ␈ε'8
␈β
_␈↓ ↓H␈ε"represen␈α␈table␈α	in␈α	decimal␈α
are␈α	only␈α
appro␈α␈ximately␈α	represen␈α␈table␈α	in␈α
binary;␈α
for␈α	example,
␈β
?␈↓ ↓S␈ε%1␈↓ ¬7␈ε%1
␈β
C␈↓ ↓x␈ε"=␈α
.1000000␈↓ β.␈ε"0␈↓ βl␈ε"exactly␈αbut␈↓ ¬[␈ε"=␈α
.06314631␈↓ π#␈ε"5␈↓ πR␈ε"only␈αappro␈α␈ximately.
␈β
P␈↓ β@␈ε%10␈↓ π5␈ε%8
␈β
T␈↓ ↓L␈ε%10␈↓ ¬/␈ε%10
␈β
X␈↓ ↓L␈∧
X↓Lα∨␈↓ ¬/␈∧
X¬/α∨
␈β
o␈↓ α␈ε"Con␈α␈v␈α␈ersely,␈αsome␈αn␈α␈um␈α␈bers␈αthat␈αare␈αexactly␈αrepresen␈α␈table␈αby␈α27␈αbinary␈αdigits␈αare
␈β∞~␈↓ ↓H␈ε"only␈α∞appro␈α␈ximately␈α
represen␈α␈table␈α∞by␈α∞8␈α∞decimal␈α∞digits␈α∞(or␈α∞ev␈α␈en␈α∞by␈α∞10␈α∞decimal␈α
digits
␈β∞E␈↓ ↓H␈ε"as␈α∂used␈α∂in␈α∂the␈α∂default␈α∂used␈α∂in␈α⊂prin␈α␈ting␈α∂real␈α∂n␈α␈um␈α␈bers␈α∂in␈α∂Pascal).␈α→F␈α⎇or␈α⊂example,␈α∂the
␈β∞p␈↓ ↓H␈ε"⎇oating-poin␈α␈t␈αn␈α␈um␈α␈ber␈αclosest␈αto␈α1.0␈αand␈αabo␈α␈v␈α␈e␈α1.0␈αhas␈αa␈αman␈α␈tissa
␈β∂3␈↓ ¬O␈ε(M␈↓ εα␈ε"=␈α
.40000000␈↓ πJ␈ε"1
␈β∂?␈↓ π\␈ε%8
␈β⊃≥

␈β↓H␈↓ ↓$␈∧↓H↓$α
u
␈β↓J␈↓ ↓$␈∧↓J↓$Hα␈↓ "␈∧↓J"Hα␈↓ ↔␈∧↓J↔Hα
␈β↓V␈↓ ↓G␈ε>Nu␈α␈mber␈α∞R␈α␈e␈α↓p␈α␈resentati␈α␈on␈α∞of␈α∞DEC␈α∂Sy␈α↓s␈α␈tem-20␈α∞and␈α∞Relati␈α␈ons␈α∞to␈α∞Pasca␈α↓l
␈β↓\␈↓ B␈ε"129
␈βα⊃␈↓ ↓$␈∧α⊃↓$α
u
␈βαO␈↓ ↓H␈ε"and␈αan␈αexponen␈α␈t␈α1.␈α⊂Its␈αv␈α}alue␈αis
␈ββ~␈↓ ∧'␈ε9␈␈ε%26
␈ββ"␈↓ βO␈ε"1␈αλ+␈↓ ∧∃␈ε"2␈↓ ∧o␈ε"=␈α
1.000␈αλ000␈αλ014␈αλ901␈αλ161␈αλ193␈αλ847␈αλ656␈αλ2␈↓ 	;␈ε"5
␈ββ/␈↓ 	M␈ε%10
␈ββv␈↓ ↓H␈ε"The␈α⊃default␈α⊃write␈α∩command␈α⊃in␈α⊃Pascal␈α∩produces␈α⊃1.0000000014.␈α But␈α∩by␈α⊃using␈α⊃the
␈β∧!␈↓ ↓H␈ε"format␈α
parameter␈α∞to␈α∞cause␈α∞this␈α∞n␈α␈um␈α␈ber␈α
to␈α∞be␈α∞prin␈α␈ted␈α∞with␈α∞26␈α
digits␈α∞to␈α∞the␈α∞righ␈α␈t␈α
of
␈β∧L␈↓ ↓H␈ε"the␈α	decimal␈α	poin␈α␈t,␈α
the␈α	exact␈α	v␈α}alue␈α	giv␈α␈en␈α
abo␈α␈v␈α␈e␈α	is␈α	obtained.␈α∂The␈α	⎇oating-poin␈α␈t␈α	n␈α␈um␈α␈ber
␈β∧w␈↓ ↓H␈ε"closest␈αto␈α1.0␈αand␈αbelo␈α␈w␈α1.0␈αhas␈αa␈αman␈α␈tissa
␈β¬K␈↓ ¬K␈ε(m␈ε"␈α
=␈α
.777777777␈↓ πO␈ε"7
␈β¬W␈↓ πa␈ε%8
␈βε≡␈↓ ↓H␈ε"and␈αan␈αexponen␈α␈t␈α0.␈α⊂Its␈αv␈α}alue␈αis
␈βεj␈↓ ∧)␈ε9␈␈ε%27
␈βεr␈↓ βQ␈ε"1␈ε6␈αλ␈␈↓ ∧↔␈ε"2␈↓ ∧q␈ε"=␈α
0.999␈αλ999␈αλ992␈αλ549␈αλ419␈αλ403␈αλ076␈αλ171␈αλ875.
␈βπE␈↓ α␈ε"The␈α
default␈α
write␈αcommand␈α
in␈α
Pascal␈α
produces␈α
9.999999880E-01.␈α∩But␈α
by␈αusing
␈βπp␈↓ ↓H␈ε"the␈αformat␈α
parameter␈αto␈αcause␈α
this␈αn␈α␈um␈α␈ber␈α
to␈αbe␈α
prin␈α␈ted␈αwith␈α
26␈αdigits␈α
to␈αthe␈αrigh␈α␈t
␈βλ≠␈↓ ↓H␈ε"of␈αthe␈αdecimal␈αpoin␈α␈t,␈αthe␈αv␈α}alue
␈βλo␈↓ ∧F␈ε"0.999␈αλ999␈αλ988␈αλ079␈αλ071␈αλ044␈αλ921␈αλ875␈αλ00
␈β	B␈↓ ↓H␈ε"is␈α∂obtained.␈α→This␈α∂result␈α∂agrees␈α∂with␈α∂the␈α∂true␈α⊂v␈α}alue␈α∂in␈α∂its␈α∂|rst␈α∂7␈α∂digits␈α∂only.␈α→Ev␈α␈en
␈β	g␈↓ ε|␈ε9␈␈ε%27
␈β	n␈↓ ↓H␈ε"m␈α↓ore␈αsurprising␈α
is␈α
the␈αfact␈α
that␈α
when␈α1␈α	+␈↓ εj␈ε"2␈↓ πG␈ε"is␈αprin␈α␈ted␈α
with␈α
either␈α9␈α
or␈α
26␈αdigits
␈β
∪␈↓ -␈ε9␈␈ε%␈α␈2␈α↓6
␈β
→␈↓ ↓H␈ε"to␈αthe␈αrigh␈α␈t␈αof␈αthe␈αdecimal␈αpoin␈α␈t,␈αthe␈αresult␈αis␈αiden␈α␈tical␈αwith␈αthe␈αv␈α}alue␈αfor␈α1␈αλ+␈↓ ≠␈ε"2␈↓ j␈ε".
␈β
>␈↓ βS␈ε9␈␈ε%␈α␈2␈α↓6
␈β
D␈↓ ↓H␈ε"Also,␈αwhen␈α1␈ε6␈αε␈␈↓ βA␈ε"2␈↓ ∧≤␈ε"is␈αprin␈α␈ted␈αin␈αeither␈αof␈αthese␈αforms␈αits␈αv␈α}alue␈αis␈αiden␈α␈tical␈αwith␈αthe
␈β
i␈↓ β5␈ε9␈␈ε%␈α␈27
␈β
o␈↓ ↓H␈ε"v␈α}alue␈αfor␈α1␈ε6␈αλ␈␈↓ β#␈ε"2␈↓ βr␈ε".
␈β~␈↓ α␈ε"Th␈α␈us␈αround-o{␈αen␈α␈ters␈αin␈α␈to␈αthe␈αrepresen␈α␈tation␈αof␈αm␈α↓ost␈α⎇oating-poin␈α␈t␈αn␈α␈um␈α␈bers␈αon
␈βF␈↓ ↓H␈ε"DEC␈αSystem-20␈αand␈αthe␈αround-o{␈αdi{ers␈αfrom␈αthat␈αwith␈αdecimal␈αn␈α␈um␈α␈bers.␈α⊂This␈αcan
␈βq␈↓ ↓H␈ε"can␈αeasily␈αgiv␈α␈e␈αrise␈αto␈αunexpected␈αresults.
␈β≤␈↓ α␈ε"It␈αis␈αof␈α
in␈α␈terest␈αto␈αn␈α↓ote␈αthat␈α.70000000␈↓ εg␈ε"0␈↓ π→␈ε",␈α
when␈αprin␈α␈ted␈αby␈αthe␈αdefault␈αWRITE
␈β(␈↓ εy␈ε%1␈α↓0
␈βG␈↓ ↓H␈ε"command␈αappears␈α
as␈α6.999999642␈α
E-01␈α
sh␈α↓o␈α␈wing␈αthat␈α
con␈α␈v␈α␈ersion␈α
to␈αbinary␈α
form␈αand
␈βr␈↓ ↓H␈ε"recon␈α␈v␈α␈ersion␈αλto␈α	decimal␈α	form␈αλfor␈α	prin␈α␈ting␈α	in␈α␈troduces␈αλsome␈α	errors.␈α∂Because␈α	of␈αλround-o{
␈β
≡␈↓ ↓H␈ε"error,␈αit␈αis␈αdangerous␈αto␈αcompare␈αreals␈αin␈αPascal␈αfor␈αequalit␈α␈y.␈α⊂F␈α⎇or␈αexample,␈αif
␈β
q␈↓ ¬4␈ε(p␈↓ ¬F␈ε(r␈↓ ¬W␈ε(oduct␈ε"␈α↓:␈α
=␈α
700.*␈αλ.700
␈β∞D␈↓ ↓H␈ε"the␈αbo␈α↓olean␈αexpression
␈β∞p␈↓ ¬k␈ε(p␈↓ ¬⎇␈ε(r␈↓ ε∞␈ε(oduct␈ε"␈α=␈α
490
␈β∂3␈↓ ↓H␈ε"w␈α␈ould␈αbe␈αF␈α{ALSE.
␈β⊃_

␈β↓H␈↓ ↓$␈∧↓H↓$α
u
␈β↓J␈↓ ↓$␈∧↓J↓$Hα␈↓ α→␈∧↓Jα→Hα␈↓ ↔␈∧↓J↔Hα
␈β↓V␈↓ αB␈ε>Nu␈α␈mber␈α∞R␈α␈e␈α↓p␈α␈resentati␈α␈on␈α∞of␈α∞DEC␈α∂Sy␈α↓s␈α␈tem-20␈α∞and␈α∞Relati␈α␈ons␈α∞to␈α∞Pasca␈α↓l
␈β↓\␈↓ ↓D␈ε"130
␈βα⊃␈↓ ↓$␈∧α⊃↓$α
u
␈βαO␈↓ ↓H␈ε2Pascal␈αArithmetic
␈ββ␈↓ α␈ε"When␈α
doing␈αarithmetic␈α
with␈α
in␈α␈tegers␈α
in␈αPascal,␈α
the␈α
operations,␈α
+,␈ε6␈α
␈␈ε",␈α
*,␈αeither
␈ββ7␈↓ ↓H␈ε"giv␈α␈e␈αλexact␈αλin␈α␈teger␈αλresults,␈α	or␈αλelse␈α	result␈αλin␈αλin␈α␈tegers␈αλto␈α↓o␈αλlong␈αλto␈α	store␈αλin␈αλ35␈αλbits␈αλ(o␈α␈v␈α␈er⎇o␈α␈w)
␈ββb␈↓ ↓H␈ε"and␈α∞cause␈α
an␈α∞error␈α∞halt.␈α⊗The␈α∞division␈α∞operation,␈↓ λ#␈ε"and␈α∞the␈α∞remainder␈α
operation,
␈ββd␈↓ π\␈ε5DIV
␈β∧∞␈↓ α␈ε",␈α⊃can␈α⊃only␈α⊂be␈α⊃applied␈α⊂to␈α⊃in␈α␈teger␈α⊃operands␈α⊂and␈α⊃they␈α⊃giv␈α␈e␈α⊂exact␈α⊃in␈α␈teger␈α⊂results.
␈β∧⊂␈↓ ↓H␈ε5MO␈α␈D
␈β∧9␈↓ ↓H␈ε"When␈αthe␈αdivision␈αoperation,␈α/,␈αis␈αapplied␈αto␈αin␈α␈tegers␈αin␈αPascal,␈αthe␈αin␈α␈tegers␈αare␈α|rst
␈β∧d␈↓ ↓H␈ε"con␈α␈v␈α␈erted␈αto␈αreal␈α⎇oating-poin␈α␈t␈αn␈α␈um␈α␈bers␈αand␈αthe␈αresulting␈αquotien␈α␈t␈αis␈αreal.
␈β¬∂␈↓ α␈ε"When␈α∞arithmetic␈α∂is␈α∞done␈α∂with␈α∞real␈α∂n␈α␈um␈α␈bers␈α∞in␈α∂P␈α⎇ASCAL,␈α∞the␈α∂exact␈α∞result␈α∞ma␈α␈y
␈β¬:␈↓ ↓H␈ε"n␈α↓ot␈α∂be␈α∂represen␈α␈table␈α∂by␈α∂27␈α∂binary␈α∂bits.␈α~If␈α∂the␈α∂result␈α∂is␈α∂to␈α↓o␈α∂large␈α∂(o␈α␈v␈α␈er⎇o␈α␈w)␈α∂or␈α∂to␈α↓o
␈β¬f␈↓ ↓H␈ε"small␈α(under⎇o␈α␈w)␈αan␈αerror␈αhalt␈αoccurs␈αwith␈αa␈αmessage
␈βε>␈↓ αX␈ε5AR␈α␈ITHMETIC␈α∪O␈α␈VERFLOW␈α∪OR␈α∩ZERODIVID␈α␈E.
␈βπ∩␈↓ ↓H␈ε"If␈α⊂it␈α⊂cann␈α↓ot␈α⊂be␈α⊃represen␈α␈ted␈α⊂exactly,␈α⊃it␈α⊃is␈α⊂rounded␈α⊂to␈α⊂27␈α⊃bits␈α⊂(in␈α⊂n␈α↓ormalized␈α⊂form)
␈βπ>␈↓ ↓H␈ε"giving␈αthe␈α
closest␈α
represen␈α␈table␈αn␈α␈um␈α␈ber.␈α∪If␈αthe␈α
true␈α
result␈αis␈↓ 	␈ε(X␈↓ 	.␈ε",␈α
then␈α
the␈αcalculated
␈βπc␈↓ ¬H␈ε9␈␈ε%28␈↓ πb␈ε9␈␈ε%␈α␈2␈α↓8
␈βπi␈↓ ↓H␈ε"result␈α
is␈αalw␈α␈a␈α␈ys␈αbet␈α␈w␈α␈een␈↓ ∧G␈ε(X␈↓ ∧i␈ε"(1␈ε6␈αε␈␈↓ ¬6␈ε"2␈↓ εε␈ε")␈α
and␈↓ εa␈ε(X␈↓ πβ␈ε"(1␈αε+␈↓ πP␈ε"2␈↓ λ∨␈ε").␈α⊂Naturally␈αthe␈α
accum␈α␈ulation
␈βλ∀␈↓ ↓H␈ε"of␈α	these␈α
small␈α
errors␈α
through␈α↓out␈α	the␈α
steps␈α
of␈α	the␈α
program␈α
ma␈α␈y␈α
giv␈α␈e␈α	rise␈α
to␈α
large␈α	errors
␈βλ?␈↓ ↓H␈ε"in␈αthe␈α|nal␈αresult.
␈βλj␈↓ α␈ε"An␈α⊃in␈α␈teger␈α∩v␈α}alue␈α⊃ma␈α␈y␈α⊃be␈α⊃assigned␈α⊃to␈α∩a␈α⊃real␈α⊃v␈α}ariable␈α⊃but␈α∩a␈α⊃real␈α⊃v␈α}alue␈α⊃cann␈α↓ot
␈β	⊗␈↓ ↓H␈ε"be␈α∂assigned␈α⊂to␈α⊂an␈α⊂in␈α␈teger␈α⊂v␈α}ariable.␈α≠If␈↓ εY␈ε"is␈α∂a␈α⊂real␈α⊂v␈α}alue,␈α⊃one␈α⊂ma␈α␈y␈α∂assign
␈β	_␈↓ ε6␈ε5X␈↓ 
]␈ε5ROUND(X)
␈β	A␈↓ ↓H␈ε"or␈↓ β≠␈ε"to␈α∞an␈α∂in␈α␈teger␈α∞v␈α}ariable␈α∞pro␈α␈vided␈α∞this␈α∞in␈α␈teger␈α∂v␈α}alue␈α∞does␈α∞n␈α↓ot␈α∞exceed␈α∞the
␈β	C␈↓ ↓v␈ε5TRUN␈α␈C(X)
␈β	l␈↓ ↓H␈ε"maxim␈α␈um␈αallo␈α␈w␈α␈able␈αin␈α␈teger␈αv␈α}alue.
␈β
↔␈↓ α␈ε"When␈α∞an␈α∂in␈α␈teger␈α∞v␈α}alue,␈↓ ¬!␈ε",␈α∂is␈α∞assigned␈α∂to␈α∞a␈α∂real␈α∞v␈α}ariable,␈α∂if␈α∂the␈α∞in␈α␈teger␈α∞requires
␈β
→␈↓ ¬∞␈ε5N
␈β
<␈↓ ¬R␈ε%27
␈β
B␈↓ ↓H␈ε"m␈α↓ore␈α
than␈α
27␈α
bits␈α
of␈α
precision␈α∞(␈↓ ¬@␈ε"2␈↓ ¬⎇␈ε"=␈α134217728),␈α∞then␈α
some␈α
lo␈α␈w␈α
order␈α
signi|cance
␈β
n␈↓ ↓H␈ε"will␈α∂be␈α⊂lost␈α∂in␈α⊂the␈α⊂con␈α␈v␈α␈ersion␈α∂to␈α⊂real;␈α⊃otherwise,␈α⊃con␈α␈v␈α␈ersion␈α∂to␈α⊂real␈α∂and␈α⊂then␈α∂back
␈β→␈↓ ↓H␈ε"to␈α
in␈α␈teger␈α∞using␈α
the␈↓ ∧y␈ε"or␈↓ ε∩␈ε"functions␈α∞will␈α
result␈α
in␈α∞the␈α
same␈α∞in␈α␈teger␈α
v␈α}alue.
␈β≠␈↓ ∧
␈ε5R␈α␈OUND␈↓ ¬&␈ε5TRUNC
␈β>␈↓ πn␈ε%27
␈βD␈↓ ↓H␈ε"This␈α∂means␈α⊂that␈α⊂if␈α∂an␈α⊂in␈α␈teger␈α⊂v␈α}alue␈α∂is␈α⊂less␈α⊂than␈↓ π\␈ε"2␈↓ λ≡␈ε"it␈α∂will␈α⊂be␈α⊂represen␈α␈ted␈α∂exactly
␈βi␈↓ 
∧␈ε%2␈α↓7
␈βo␈↓ ↓H␈ε"as␈α∞a␈α∂⎇oating-poin␈α␈t␈α∂n␈α␈um␈α␈ber.␈α_But␈α∂ev␈α␈en␈α∂if␈α∞the␈α∂in␈α␈teger␈α∂v␈α}alue␈α∂exceeds␈↓ 	r␈ε"2␈↓ 
$␈ε",␈α⊂it␈α∂w␈α␈ould␈α∞be
␈β~␈↓ ↓H␈ε"represen␈α␈ted␈α
exactly␈α∞if␈α∞in␈α∞its␈α
binary␈α∞represen␈α␈tation,␈α∞the␈α∞le$m␈α↓ost␈α∞and␈α∞righ␈α␈tm␈α↓ost␈α
ones
␈βF␈↓ ↓H␈ε"are␈αn␈α↓ot␈αm␈α↓ore␈αthan␈α26␈αpositions␈αapart.
␈βq␈↓ α␈ε"When␈α
the␈αt␈α␈w␈α␈o␈α
operands␈αof␈α
a␈α
Pascal␈αoperation,␈α
+,␈ε6␈α
␈␈ε",␈α*,␈α
/␈α
are␈αof␈α
di{eren␈α␈t␈αt␈α␈ype,
␈β
≤␈↓ ↓H␈ε"the␈αin␈α␈teger␈αoperand␈αis␈αcon␈α␈v␈α␈erted␈α|rst␈αto␈αreal␈αt␈α␈ype␈αso␈αthat␈αthe␈αarithmetic␈αis␈αdone␈αwith
␈β
G␈↓ ↓H␈ε"real␈αn␈α␈um␈α␈bers.
␈β⊃_

␈β↓H␈↓ ↓$␈∧↓H↓$α
u
␈β↓J␈↓ ↓$␈∧↓J↓$Hα␈↓ "␈∧↓J"Hα␈↓ ↔␈∧↓J↔Hα
␈β↓V␈↓ β}␈ε>Find␈α␈ing␈α∞t␈α␈he␈α∂R␈α␈o␈α↓ot␈α∞o␈α␈f␈α∂a␈α↓n␈α∞Eq␈α␈uatio␈α␈n
␈β↓\␈↓ B␈ε"131
␈βα⊃␈↓ ↓$␈∧α⊃↓$α
u
␈βα[␈↓ ↓H␈ε>APP␈α↓ENDIX␈α∂E.␈α∞F␈α↓i␈α␈ndi␈α␈ng␈α∞th␈α␈e␈α∂R␈α␈o␈α↓ot␈α∞of␈α∞a␈α↓n␈α∞Equ␈α␈a␈α↓ti␈α␈on␈α␈.
␈ββ≡␈↓ α␈ε"F␈α⎇or␈α∞what␈α∞v␈α}alue␈α∞of␈ε(␈α∞x␈ε"␈α∞is␈↓ ∧}␈ε"cos␈↓ ¬.␈ε"(␈ε(x␈ε")␈α
=␈ε(␈α
x␈ε"?␈α⊗I.e.,␈ε(␈α∞co␈α↓s␈ε"(␈ε(x␈ε")␈ε6␈α	␈␈ε(␈α	x␈ε"␈α
=␈α
0.␈ε(␈α⊗co␈α↓s␈ε"(0)␈ε6␈α	␈␈ε"␈α	0␈α∞is␈α∞1␈α
>␈α
0.
␈ββI␈↓ ↓H␈ε(cos␈ε"(␈↓ α¬␈ε(→␈↓ α≠␈ε"/2)␈ε6␈α
␈␈↓ ββ␈ε(→␈↓ β→␈ε"/2␈α∂is␈ε6␈α∂␈␈↓ ∧↔␈ε(→␈↓ ∧-␈ε"/2␈↓ ∧`␈ε"<␈α⊂0.␈α→Somewhere␈α∂bet␈α␈w␈α␈een,␈ε(␈α⊂cos␈ε"(␈ε(x␈ε")␈ε6␈α
␈␈ε(␈αx␈ε"␈α∂=␈α∂0.␈α→W␈α⎇e␈α∂plan␈α∂to
␈ββu␈↓ ↓H␈ε"narro␈α␈w␈αdo␈α␈wn␈αthe␈α
range␈αin␈α
which␈αthe␈αdesired␈ε(␈α
x␈ε"␈αlies,␈α
by␈αa␈αfactor␈α
of␈αt␈α␈w␈α␈o␈α
at␈αev␈α␈ery␈αstep.
␈β∧ ␈↓ ↓H␈ε"Giv␈α␈en␈αt␈α␈w␈α␈o␈αn␈α␈um␈α␈bers␈↓ ∧∧␈ε(l␈↓ ∧∂␈ε(o␈ε"␈αand␈ε(␈αhi␈ε"␈α↓,␈αwhere␈αw␈α␈e␈αkn␈α↓o␈α␈w␈αthat␈↓ πu␈ε(l␈↓ λ␈ε(o␈ε6␈α∀␈ε(␈α
x␈ε"␈α(so␈ε(␈αcos␈ε"(␈↓ 	←␈ε(l␈↓ 	j␈ε(o␈ε"␈α↓)␈ε6␈αλ␈␈↓ 
<␈ε(l␈↓ 
G␈ε(o␈ε6␈α
∃␈ε"␈α
0)␈αand
␈β∧K␈↓ ↓H␈ε(hi␈ε6␈α∃␈ε(␈αx␈ε"␈α
(so␈ε(␈αco␈α↓s␈ε"(␈ε(hi␈ε")␈ε6␈αλ␈␈ε(␈α	hi␈ε6␈α∀␈ε"␈α0),␈α
w␈α␈e␈αtak␈α␈e␈α
a␈αn␈α␈um␈α␈ber␈α
bet␈α␈w␈α␈een␈α
them,␈ε(␈αmi␈α↓d␈ε"␈α=␈α(␈ε(hi␈ε"␈αλ+␈↓ ≡␈ε(l␈↓ )␈ε(o␈ε")/2,
␈β∧v␈↓ ↓H␈ε"and␈α∂depending␈α∞on␈α∂whether␈ε(␈α∂co␈α↓s␈ε"(␈ε(m␈α␈i␈α↓d␈ε")␈ε6␈α
␈␈ε(␈α
mid␈ε6␈α∂∃␈ε"␈α∂0␈α∂or␈α∂<␈α∂0,␈α∂w␈α␈e␈α∂tak␈α␈e␈ε(␈α∂mi␈α↓d␈ε"␈α∂as␈α∂the␈α∞new
␈β¬!␈↓ ↓H␈ε"v␈α}alue␈αof␈ε(␈αhi␈ε"␈α
or␈↓ β)␈ε(l␈↓ β5␈ε(o␈ε".␈α⊃W␈α⎇e␈αcon␈α␈tin␈α␈ue␈αthis␈α
un␈α␈til␈ε(␈αhi␈ε6␈α	␈␈↓ π ␈ε(l␈↓ π+␈ε(o␈ε"␈α
is␈αv␈α␈ery␈αsmall;␈ε(␈α
x␈ε"␈αalw␈α␈a␈α␈ys␈αlies␈αbet␈α␈w␈α␈een
␈β¬M␈↓ ↓H␈ε"them.
␈βε
␈↓ αP␈ε∃BEGIN
␈βε2␈↓ αP␈ε∃REAL␈↓ β%␈ε∃LO,␈↓ βi␈ε∃MID,␈↓ ∧>␈ε∃HI;
␈βεY␈↓ αP␈ε∃LO␈↓ ββ␈ε∃:=␈↓ β6␈ε∃0;
␈βπ↓␈↓ αP␈ε∃HI␈↓ ββ␈ε∃:=␈↓ β6␈ε∃3.1416/2;
␈βπ)␈↓ αP␈ε∃WHILE␈↓ β6␈ε∃HI-LO␈↓ ∧≤␈ε∃>␈↓ ∧>␈ε∃0.000001␈↓ ¬W␈ε∃DO
␈βπP␈↓ βX␈ε∃BEGIN
␈βπv␈↓ ∧>␈ε#<=␈↓ ¬3␈ε#<␈α↓=␈↓ π1␈ε#>␈α↓=␈↓ 	≡␈ε#<=
␈βπx␈↓ βX␈ε∃(*␈↓ ∧␈ε∃LO␈↓ ¬⊃␈ε∃X␈↓ επ␈ε∃HI,␈↓ εK␈ε∃F(LO)␈↓ λ¬␈ε∃0,␈↓ λ8␈ε∃F(HI)␈↓ 	r␈ε∃0*)
␈βλ≥␈↓ ¬α␈ε#+
␈βλ∨␈↓ βX␈ε∃MID␈↓ ∧≤␈ε∃:=␈↓ ∧O␈ε∃(HI␈↓ ¬#␈ε∃LO)/2;
␈βλE␈↓ ¬h␈ε#>=
␈βλG␈↓ βX␈ε∃IF␈↓ ∧␈ε∃COS(MID)-MID␈↓ ε<␈ε∃0␈↓ ε↑␈ε∃THEN
␈βλo␈↓ ∧`␈ε∃LO␈↓ ¬∪␈ε∃:=␈↓ ¬F␈ε∃MID
␈β	⊗␈↓ βX␈ε∃ELSE␈↓ ∧-␈ε∃HI␈↓ ∧`␈ε∃:=␈↓ ¬∪␈ε∃MID
␈β	>␈↓ βX␈ε∃(*␈↓ ∧␈ε∃HI-LO␈↓ ∧q␈ε∃HAS␈↓ ¬5␈ε∃DECREASED␈↓ ε←␈ε∃BY␈↓ π∩␈ε∃HALF*)
␈β	e␈↓ βX␈ε∃END;
␈β
␈↓ ε,␈ε#=␈↓ λλ␈ε#+
␈β

␈↓ αP␈ε∃WRITELN("X␈↓ ∧␈ε∃SUCH␈↓ ∧`␈ε∃THAT␈↓ ¬5␈ε∃COS(X)␈↓ ε↑␈ε∃X␈↓ π␈ε∃IS",␈↓ πU␈ε∃(HI␈↓ λ*␈ε∃LO)/2)
␈β
5␈↓ αP␈ε∃END
␈β
q␈↓ α␈ε"The␈α∂k␈α␈ey␈α∞to␈α∂the␈α∞abo␈α␈v␈α␈e␈α∂program␈α∞is␈α∂the␈α∂in␈α␈v␈α}arian␈α␈t␈α∞of␈α∂the␈α∞iteration:␈α⊃ev␈α␈ery␈α∂time␈α∞w␈α␈e
␈β≥␈↓ ↓H␈ε"go␈α
through␈α∞it,␈α
w␈α␈e␈α∞start␈α
with␈α∞a␈α
n␈α␈um␈α␈ber␈α∞in␈↓ εb␈ε(l␈↓ εn␈ε(o␈ε"␈α
which␈α∞is␈α
less␈α∞than␈α
the␈α∞desired␈ε(␈α
x␈ε",␈α∞and␈α
a
␈βH␈↓ ↓H␈ε"n␈α␈um␈α␈ber␈αin␈ε(␈αhi␈ε"␈αwhich␈αis␈αlarger.␈α⊃Kn␈α↓o␈α␈wing␈αthis,␈αit␈αis␈αeasy␈αto␈α|nd␈αa␈αnew␈αv␈α}alue␈αfor␈αone␈αor
␈βs␈↓ ↓H␈ε"the␈αother␈αwhich␈αis␈αstill␈αon␈αthe␈αcorrect␈αside␈αof␈ε(␈αx␈ε",␈αbut␈αis␈αcloser.
␈β≡␈↓ α␈ε"In␈α
order␈α	to␈α
kn␈α↓o␈α␈w␈α	that␈α
the␈α	program␈α
will␈α
terminate,␈α
w␈α␈e␈α	ha␈α␈v␈α␈e␈α
to␈α	see␈α
that␈α	ev␈α␈en␈α␈tually,
␈βI␈↓ ↓H␈ε"the␈α∞di{erence␈α∞bet␈α␈w␈α␈een␈ε(␈α∞hi␈ε"␈α∂and␈↓ ¬.␈ε(l␈↓ ¬9␈ε(o␈ε"␈α∞will␈α∂get␈α∞less␈α∞than␈α∞an␈α␈y␈α∞positiv␈α␈e␈α∞n␈α␈um␈α␈ber.␈α⊗(Actually,
␈βn␈↓ 
;␈ε9␈␈ε%␈α␈8
␈βu␈↓ ↓H␈ε"because␈α
of␈αrounding␈αerrors,␈αthe␈αdi{erence␈α
ma␈α␈y␈αonly␈αget␈α
do␈α␈wn␈αto␈αabout␈α1␈↓ 
)␈ε"0␈↓ 
t␈ε"and␈α
just
␈β
 ␈↓ ↓H␈ε"sta␈α␈y␈α
there;␈α∂this␈α∞is␈α∞wh␈α␈y␈α∞the␈α
test␈α∞for␈α∞termination␈α∞w␈α␈as␈α
based␈α∞on␈α∞a␈α∞n␈α␈um␈α␈ber␈α∞larger␈α
than
␈β
E␈↓ ↓l␈ε9␈␈ε%␈α␈8
␈β
K␈↓ ↓H␈ε"1␈↓ ↓Z␈ε"0␈↓ α~␈ε".)␈α∂It␈αis␈α
v␈α␈ery␈α
importan␈α␈t,␈α
when␈α
designing␈α
inde|nite␈αiterations,␈α
to␈α
be␈α
sure␈α
that␈α
they
␈β
v␈↓ ↓H␈ε"w␈α␈on't␈αgo␈αon␈αforev␈α␈er.
␈β⊃_

␈β↓H␈↓ ↓$␈∧↓H↓$α
u
␈β↓J␈↓ ↓$␈∧↓J↓$Hα␈↓ α→␈∧↓Jα→Hα␈↓ ↔␈∧↓J↔Hα
␈β↓V␈↓ ¬v␈ε>Nu␈α␈meri␈α␈c␈α↓al␈α∞Ca␈α↓l␈α␈c␈α↓u␈α␈lu␈α␈s
␈β↓\␈↓ ↓D␈ε"132
␈βα⊃␈↓ ↓$␈∧α⊃↓$α
u
␈βαT␈↓ ↓H␈ε>APP␈α↓ENDIX␈α∂F.␈α∞Num␈α␈e␈α↓r␈α␈ical␈α∞C␈α↓alcul␈α␈us.
␈ββ↔␈↓ α␈ε"In␈α∞pure␈α∂mathematics,␈α∂when␈α∞y␈α␈ou␈α∂ha␈α␈v␈α␈e␈α∞determined␈α∞the␈α∂sum␈α∞of␈α∂an␈α∞in|nite␈α∞series,
␈ββB␈↓ ↓H␈ε"y␈α␈ou'v␈α␈e␈αsaid␈αit␈αall:
␈ββc␈↓ ε␈ε91
␈ββg␈↓ ¬v␈ε↓X
␈ββk␈↓ π*␈ε%2
␈ββq␈↓ ε<␈ε"1␈↓ π∀␈ε(→
␈β∧	␈↓ εb␈ε"=␈↓ π?␈ε",
␈β∧≥␈↓ ε7␈∧∧≥ε7α≡␈↓ π∀␈∧∧≥π∀α'
␈β∧∨␈↓ εC␈ε%2
␈β∧#␈↓ ε7␈ε(i␈↓ π≡␈ε"6
␈β∧9␈↓ ¬t␈ε+i␈ε%␈α␈=1
␈β∧f␈↓ λ5␈ε%2
␈β∧l␈↓ ↓H␈ε"sa␈α␈y.␈α⊂If␈αy␈α␈ou␈αw␈α␈an␈α␈t␈αto␈α|nd␈αa␈αgo␈α↓od␈αappro␈α␈ximate␈αv␈α}alue␈αfor␈↓ λ∨␈ε(→␈↓ λF␈ε"/6␈αfrom␈αthis␈αseries,␈αperhaps
␈β¬↔␈↓ ↓H␈ε"by␈αev␈α}aluating
␈β¬8␈↓ ε>␈ε+n
␈β¬<␈↓ ε.␈ε↓X
␈β¬F␈↓ εu␈ε"1
␈β¬r␈↓ εo␈∧¬rεoα≡
␈β¬t␈↓ ε{␈ε%2
␈β¬w␈↓ εo␈ε(i
␈βε∞␈↓ ε,␈ε+i␈ε%␈α␈=1
␈βε<␈↓ ↓H␈ε"for␈αsome␈αlarge␈↓ βE␈ε",␈αy␈α␈ou␈α|nd␈αthat␈αthe␈αerror␈αis␈αlarge␈αunless␈↓ λO␈ε"is␈αv␈α␈ery␈αlarge.␈α⊂The␈αerror␈αis
␈βε>␈↓ β2␈ε5n␈↓ λ1␈ε5n
␈βεy␈↓ ε>␈ε↓Z
␈βε␈␈↓ ¬↔␈ε91␈↓ εb␈ε91
␈βπβ␈↓ ¬
␈ε↓X
␈βπ
␈↓ ¬k␈ε"1␈↓ λ(␈ε"1
␈βπ≥␈↓ π⊗␈ε9␈␈ε%␈α␈2
␈βπ%␈↓ ε⊂␈ε6→␈↓ πα␈ε(x␈↓ πD␈ε(dx␈↓ πt␈ε"=␈↓ λ@␈ε".
␈βπ9␈↓ ¬e␈∧π9¬eα≡␈↓ λ&␈∧π9λ&α⊗
␈βπ;␈↓ ¬r␈ε%2
␈βπ>␈↓ ¬e␈ε(i␈↓ λ&␈ε(n
␈βπH␈↓ εR␈ε+n
␈βπU␈↓ ∧r␈ε+i␈ε%=␈ε+␈α␈n␈ε%+␈α␈1
␈βλ∪␈↓ λm␈ε%6
␈βλ→␈↓ ↓H␈ε"T␈α⎇o␈αget␈αsix-place␈αaccuracy,␈αw␈α␈e␈αneed␈αto␈αha␈α␈v␈α␈e␈ε(␈αn␈ε"␈αaround␈α2␈ε6␈αεα␈ε"␈απ1␈↓ λ[␈ε"0␈↓ λ⎇␈ε".␈α⊂But␈αthen,␈αw␈α␈e␈α|nd␈αthat
␈βλ>␈↓ ε|␈ε9␈␈ε%8
␈βλD␈↓ ↓H␈ε"the␈α
accum␈α␈ulated␈α	rounding␈α
errors␈α
of␈α
about␈α
1␈↓ εj␈ε"0␈↓ π4␈ε"per␈α
addition␈α
(on␈α
the␈α
DEC␈α
System␈α	20)
␈βλi␈↓ π	␈ε%6␈↓ π}␈ε9␈␈ε%8␈↓ 	O␈ε9␈␈ε%2
␈βλo␈↓ ↓H␈ε"ha␈α␈v␈α␈e␈αle$␈αour␈αresults␈αwrong␈α
by␈αabout␈↓ ε∪␈ε"(2␈ε6␈αλα␈ε"␈αλ1␈↓ εw␈ε"0␈↓ π~␈ε")␈ε6␈αλα␈ε"␈αλ1␈↓ πl␈ε"0␈↓ λ7␈ε"=␈α
2␈ε6␈αλα␈ε"␈αλ1␈↓ 	=␈ε"0␈↓ 	}␈ε",␈αso␈αw␈α␈e␈αare␈αv␈α␈ery
␈β	≠␈↓ ↓H␈ε"far␈α
o{.␈α⊂T␈α⎇o␈α
use␈αcomputers␈αto␈α
calculate␈αn␈α␈um␈α␈bers␈αde|ned␈α
by␈αlimits,␈αw␈α␈e␈αha␈α␈v␈α␈e␈α
to␈αn␈α↓ot␈α
only
␈β	F␈↓ ↓H␈ε"to␈αapproach␈αthe␈αlimits,␈αbut␈αapproach␈αthem␈αfast␈αen␈α↓ough␈αthat␈αw␈α␈e␈αcan␈αget␈αthe␈αresult␈αin
␈β	q␈↓ ↓H␈ε"reasonable␈αtime,␈αwith␈α↓out␈αaccum␈α␈ulating␈αto␈α↓o␈αman␈α␈y␈αsmall␈αerrors␈αalong␈αthe␈αw␈α␈a␈α␈y.
␈β
≤␈↓ α␈ε"The␈αanalysis␈αabo␈α␈v␈α␈e␈αsh␈α↓o␈α␈ws␈αthat
␈β
←␈↓ ∧~␈ε+n
␈β
b␈↓ ∧
␈ε↓X
␈β
m␈↓ ∧P␈ε"1␈↓ ¬v␈ε(a
␈β¬␈↓ ∧v␈ε6→␈↓ ¬$␈ε(S␈↓ ¬E␈ε"+␈↓ ε∂␈ε",␈α*(␈ε6→␈↓ ε⎇␈ε"means␈α\is␈αclose␈αto"␈↓ 	)␈ε")
␈β→␈↓ ∧J␈∧→∧Jα≡␈↓ ¬u␈∧→¬uα⊗
␈β≠␈↓ ∧W␈ε%2
␈β≡␈↓ ∧J␈ε(i␈↓ ¬u␈ε(n
␈β5␈↓ ∧π␈ε+i␈ε%=1
␈βn␈↓ β↔␈ε%2
␈βt␈↓ ↓H␈ε"where␈↓ α0␈ε(S␈↓ αS␈ε"=␈↓ β↓␈ε(→␈↓ β'␈ε"/6␈↓ βW␈ε"and␈ε(␈αa␈ε"␈αis␈αsome␈αconstan␈α␈t.␈α⊂A␈αm␈α↓ore␈αcareful␈αanalysis␈αw␈α␈ould␈αsh␈α↓o␈α␈w␈αthat
␈β8␈↓ ∧S␈ε+n
␈β<␈↓ ∧C␈ε↓X
␈βF␈↓ ¬
␈ε"1␈↓ ε0␈ε(a␈↓ π␈ε(b␈↓ πn␈ε(c
␈β↑␈↓ ¬/␈ε6→␈↓ ¬]␈ε(S␈↓ ¬}␈ε"+␈↓ εP␈ε"+␈↓ π3␈ε"+␈↓ λ∃␈ε"+␈↓ λA␈ε6↓␈αε↓␈αε↓␈↓ λq␈ε";
␈βs␈↓ ¬∧␈∧s¬∧α≡␈↓ ε.␈∧sε.α⊗␈↓ π␈∧sπα'␈↓ πc␈∧sπcα'
␈βu␈↓ ¬⊂␈ε%2␈↓ π⊗␈ε%2␈↓ πx␈ε%3
␈βx␈↓ ¬∧␈ε(i␈↓ ε.␈ε(n␈↓ π␈ε(n␈↓ πc␈ε(n
␈β
∂␈↓ ∧A␈ε+i␈ε9␈␈ε%␈α␈1
␈β
L␈↓ ↓H␈ε"that␈α∞is,␈α∂the␈α∞error␈α∂in␈α∞using␈α∂the␈α∞|nite␈α∞sum␈α∂is␈α∞a␈α∞con␈α␈v␈α␈ergen␈α␈t␈α∂series␈α∞of␈α∂po␈α␈w␈α␈ers␈α∞of␈α∞1/␈ε(n␈ε"␈α∞in
␈β
w␈↓ ↓H␈ε"which␈α
all␈α∞terms␈α∞go␈α
to␈α∞zero␈α∞as␈ε(␈α∞n␈ε"␈α
gets␈α∞large.␈α∃If␈α∞w␈α␈e␈α
could␈α∞get␈α∞rid␈α
of␈α∞the␈α∞term␈ε(␈α∞a␈ε"/␈ε(n␈ε"␈α␈,␈α∞w␈α␈e
␈β∞"␈↓ ↓H␈ε"w␈α␈ould␈αha␈α␈v␈α␈e␈αa␈αm␈α␈uch␈αsmaller␈αerror␈αfor␈αlarge␈ε(␈αn␈ε"␈α␈.
␈β∞M␈↓ α␈ε"De|ne
␈β∞g␈↓ ¬→␈ε+n
␈β∞k␈↓ ¬	␈ε↓X
␈β∞u␈↓ ¬P␈ε"1␈↓ εv␈ε(a␈↓ πR␈ε(b␈↓ λ4␈ε(c
␈β∂
␈↓ β{␈ε(S␈↓ ∧!␈ε"(␈ε(n␈ε")␈α
=␈↓ ¬u␈ε"=␈↓ ε#␈ε(S␈↓ εD␈ε"+␈↓ π⊗␈ε"+␈↓ πy␈ε"+␈↓ λ[␈ε"+␈↓ 	π␈ε6↓␈αε↓␈αε↓␈↓ 	7␈ε".
␈β∂→␈↓ ∧⊂␈ε%0
␈β∂!␈↓ ¬J␈∧∂!¬Jα≡␈↓ εt␈∧∂!εtα⊗␈↓ πF␈∧∂!πFα'␈↓ λ)␈∧∂!λ)α'
␈β∂#␈↓ ¬V␈ε%2␈↓ π\␈ε%2␈↓ λ>␈ε%3
␈β∂'␈↓ ¬J␈ε(i␈↓ εt␈ε(n␈↓ πF␈ε(n␈↓ λ)␈ε(n
␈β∂=␈↓ ¬π␈ε+i␈ε%=␈α␈1
␈β⊃∨

␈β↓H␈↓ ↓$␈∧↓H↓$α
u
␈β↓J␈↓ ↓$␈∧↓J↓$Hα␈↓ "␈∧↓J"Hα␈↓ ↔␈∧↓J↔Hα
␈β↓V␈↓ ∧{␈ε>Nu␈α␈meri␈α␈c␈α↓al␈α∞Ca␈α↓l␈α␈c␈α↓u␈α␈lu␈α␈s
␈β↓\␈↓ B␈ε"133
␈βα⊃␈↓ ↓$␈∧α⊃↓$α
u
␈βαQ␈↓ ↓H␈ε"Then␈↓ α&␈ε(S␈↓ αL␈ε"(2␈ε(n␈ε"),␈αsumming␈αt␈α␈wice␈αas␈αman␈α␈y␈αterms,␈αis
␈βα]␈↓ α;␈ε%0
␈ββ~␈↓ ¬P␈ε(a␈↓ ε>␈ε(b␈↓ π2␈ε(c
␈ββ2␈↓ ∧t␈ε(S␈↓ ¬∃␈ε"+␈↓ ¬y␈ε"+␈↓ εm␈ε"+␈↓ πb␈ε"+␈↓ λ∞␈ε6↓␈αε↓␈αε↓␈↓ λ>␈ε".
␈ββF␈↓ ¬E␈∧βF¬Eα(␈↓ ε)␈∧βFε)α9␈↓ π≥␈∧βFπ≥α9
␈ββH␈↓ εQ␈ε%2␈↓ πE␈ε%3
␈ββL␈↓ ¬E␈ε"2␈ε(n␈↓ ε)␈ε"4␈↓ ε;␈ε(n␈↓ π≥␈ε"8␈↓ π/␈ε(n
␈β∧∞␈↓ ↓H␈ε"Eliminating␈ε(␈αa␈ε"␈αbet␈α␈w␈α␈een␈↓ ∧5␈ε(S␈↓ ∧[␈ε"(␈ε(n␈ε")␈αand␈↓ ¬[␈ε(S␈↓ ε↓␈ε"(2␈ε(n␈ε"),␈αw␈α␈e␈αde|ne
␈β∧~␈↓ ∧J␈ε%0␈↓ ¬p␈ε%0
␈β∧W␈↓ πQ␈ε"1␈↓ πw␈ε(b␈↓ λN␈ε"3␈↓ λs␈ε(c
␈β∧o␈↓ β<␈ε(S␈↓ βb␈ε"(␈ε(n␈ε")␈α
=␈α
2␈↓ ∧Z␈ε(S␈↓ ¬␈ε"(2␈ε(n␈ε")␈ε6␈αλ␈␈↓ ¬t␈ε(S␈↓ ε~␈ε"(␈ε(n␈ε")␈α
=␈↓ π␈ε(S␈↓ π!␈ε6␈␈↓ λ≡␈ε6␈␈↓ 	~␈ε6␈␈↓ 	F␈ε6↓␈αε↓␈αε↓␈↓ 	v␈ε".
␈β∧|␈↓ βQ␈ε%1␈↓ ∧o␈ε%0␈↓ ε	␈ε%0
␈β¬∧␈↓ πQ␈∧¬∧πQα∩␈↓ πk␈∧¬∧πkα'␈↓ λN␈∧¬∧λNα∩␈↓ λh␈∧¬∧λhα'
␈β¬ε␈↓ λ↓␈ε%2␈↓ λ⎇␈ε%3
␈β¬	␈↓ πQ␈ε"2␈↓ πk␈ε(n␈↓ λN␈ε"4␈↓ λh␈ε(n
␈β¬K␈↓ ↓H␈ε"so␈↓ ↓t␈ε(S␈↓ α~␈ε"(␈ε(n␈ε")␈αapproaches␈ε(␈αs␈ε"␈αm␈α␈uch␈αfaster␈αthan␈↓ εD␈ε(S␈↓ εj␈ε"(␈ε(n␈ε")␈αdoes.␈α⊂No␈α␈w
␈β¬X␈↓ α	␈ε%1␈↓ εY␈ε%0
␈βε∃␈↓ ε5␈ε"1␈↓ ε[␈ε(b␈↓ π;␈ε"3␈↓ πi␈ε(c
␈βε-␈↓ ∧F␈ε(S␈↓ ∧l␈ε"(2␈ε(n␈ε")␈α
=␈↓ ¬d␈ε(S␈↓ ε¬␈ε6␈␈↓ πα␈ε6␈␈↓ λ⊂␈ε6␈␈↓ λ<␈ε6↓␈αε↓␈αε↓␈↓ λl␈ε",
␈βε9␈↓ ∧[␈ε%1
␈βεA␈↓ ε5␈∧εAε5α∩␈↓ εO␈∧εAεOα'␈↓ π2␈∧εAπ2α$␈↓ π↑␈∧εAπ↑α'
␈βεC␈↓ εe␈ε%2␈↓ πs␈ε%3
␈βεF␈↓ ε5␈ε"8␈↓ εO␈ε(n␈↓ π2␈ε"32␈↓ π↑␈ε(n
␈βπ	␈↓ ↓H␈ε"and␈αw␈α␈e␈αcan␈αelminate␈ε(␈αb␈ε"␈αbet␈α␈w␈α␈een␈↓ ¬<␈ε(S␈↓ ¬b␈ε"(␈ε(n␈ε")␈αand␈↓ εb␈ε(S␈↓ πλ␈ε"(2␈ε(n␈ε"):
␈βπ∃␈↓ ¬Q␈ε%1␈↓ εx␈ε%1
␈βπT␈↓ ∧r␈ε"4␈↓ ¬∧␈ε(S␈↓ ¬+␈ε"(2␈ε(n␈ε"␈α␈)␈ε6␈αλ␈␈↓ ε≡␈ε(S␈↓ εE␈ε"(␈ε(n␈ε"␈α␈)
␈βπa␈↓ ¬~␈ε%1␈↓ ε4␈ε%1
␈βπd␈↓ 	?␈ε%4
␈βπl␈↓ βb␈ε(S␈↓ ∧λ␈ε"(␈ε(n␈ε")␈α
=␈↓ π␈ε"=␈↓ π.␈ε(S␈↓ πO␈ε"+␈↓ π{␈ε"terms␈αin␈↓ 	¬␈ε"1/␈↓ 	)␈ε(n␈↓ 	P␈ε".
␈βπy␈↓ βx␈ε%2
␈βλ␈↓ ∧r␈∧λ∧rαα↓
␈βλε␈↓ ¬i␈ε"3
␈βλF␈↓ ↓H␈ε"An␈α↓other␈αstep␈αgiv␈α␈es:
␈β	⊂␈↓ ∧w␈ε"8␈↓ ¬	␈ε(S␈↓ ¬0␈ε"(2␈ε(n␈ε"␈α␈)␈ε6␈αλ␈␈↓ ε#␈ε(S␈↓ εJ␈ε"(␈ε(n␈ε"␈α␈)
␈β	≤␈↓ ¬∨␈ε%2␈↓ ε9␈ε%2
␈β	 ␈↓ 	D␈ε%6
␈β	(␈↓ βg␈ε(S␈↓ ∧
␈ε"(␈ε(n␈ε")␈α
=␈↓ π¬␈ε"=␈↓ π3␈ε(S␈↓ πT␈ε"+␈↓ λ␈ε"terms␈αin␈↓ 	
␈ε"1/␈↓ 	.␈ε(n
␈β	4␈↓ β⎇␈ε%3
␈β	<␈↓ ∧w␈∧	<∧wαα↓
␈β	A␈↓ ¬n␈ε"7
␈β
α␈↓ ↓H␈ε"Using␈ε(␈αn␈ε"␈α	=␈α
4,␈αw␈α␈e␈αget,␈αusing␈αa␈αpock␈α␈et␈αcalculator␈αfor␈αten␈αmin␈α␈utes,
␈β
Q␈↓ ↓Q␈ε(S␈↓ ↓w␈ε"(␈ε(n␈ε")␈α
=␈α
1.4236111␈↓ ∧-␈ε(S␈↓ ∧S␈ε"(␈ε(n␈ε")␈α
=␈α
1.6312732␈↓ π	␈ε(S␈↓ π/␈ε"(␈ε(n␈ε")␈α
=␈α
1.6446036␈↓ 	\␈ε(S␈↓ 
α␈ε"(␈ε(n␈ε")␈α
=␈α
1.6449350
␈β
]␈↓ ↓f␈ε%0␈↓ ∧B␈ε%1␈↓ π≡␈ε%2␈↓ 	q␈ε%3
␈β
|␈↓ ↓H␈ε(S␈↓ ↓n␈ε"(2␈ε(n␈ε")␈α
=␈α
1.5274221␈↓ ∧$␈ε(S␈↓ ∧J␈ε"(2␈ε(n␈ε")␈α
=␈α
1.6412710␈↓ π␈ε(S␈↓ π&␈ε"(2␈ε(n␈ε")␈α
=␈α
1.6448936
␈βλ␈↓ ↓]␈ε%0␈↓ ∧9␈ε%1␈↓ π∃␈ε%2
␈β'␈↓ ↓H␈ε(S␈↓ ↓n␈ε"(4␈ε(n␈ε")␈α
=␈α
1.5843465␈↓ ∧$␈ε(S␈↓ ∧J␈ε"(4␈ε(n␈ε")␈α
=␈α
1.6439880
␈β3␈↓ ↓]␈ε%0␈↓ ∧9␈ε%1
␈βR␈↓ ↓H␈ε(S␈↓ ↓n␈ε"(8␈ε(n␈ε")␈α
=␈α
1.6141672
␈β←␈↓ ↓]␈ε%0
␈β≠␈↓ βN␈ε%2
␈β!␈↓ ↓H␈ε"where␈↓ α0␈ε(S␈↓ αV␈ε"(␈ε(n␈ε")␈ε6␈αλ␈␈↓ β8␈ε(→␈↓ β↑␈ε"/6␈↓ ∧␈ε"=␈α
.0000009,␈αas␈αsmall␈αan␈αerror␈αas␈αif␈αw␈α␈e␈αhad␈αev␈α}aluated
␈β.␈↓ αE␈ε%3
␈βn␈↓ εP␈ε'6
␈βs␈↓ ε1␈ε%1␈↓ ε@␈ε%0
␈βv␈↓ ε.␈ε↓X
␈β
↓␈↓ εu␈ε"1
␈β
-␈↓ εo␈∧
-εoα≡
␈β
/␈↓ ε{␈ε%2
␈β
2␈↓ εo␈ε(i
␈β
I␈↓ ε,␈ε+i␈ε%␈α␈=1
␈β∞ε␈↓ ↓H␈ε"using␈αt␈α␈w␈α␈elv␈α␈e-␈αor␈αthirteen-digit␈αn␈α␈um␈α␈bers.
␈β∞+␈↓ λ
␈ε%2
␈β∞1␈↓ α␈ε"This␈α
is␈αn␈α↓ot␈α
necessarily␈αthe␈α
best␈αw␈α␈a␈α␈y␈α
to␈α
ev␈α}aluate␈↓ πt␈ε(→␈↓ λ≠␈ε"/6,␈α
and␈αit␈α
w␈α␈orks␈αv␈α␈ery␈α
badly␈α
on
␈β∞\␈↓ ↓H␈ε"some␈αother␈αin|nite␈α
series␈αso␈αit␈α
sh␈α↓ould␈αn␈α↓ot␈αbe␈α
used␈αgenerally;␈αit␈α
sh␈α↓o␈α␈ws,␈αh␈α↓o␈α␈w␈α␈ev␈α␈er,␈αthat
␈β∂λ␈↓ ↓H␈ε"calculus␈αwith␈αactual␈αn␈α␈um␈α␈bers␈αin␈α␈v␈α␈olv␈α␈es␈αan␈αingredien␈α␈t␈αn␈α↓ot␈αpresen␈α␈t␈αin␈αthe␈αpure␈αcalculus:
␈β∂3␈↓ ↓H␈ε"|nding␈αw␈α␈a␈α␈ys␈αto␈αachiev␈α␈e␈αv␈α␈ery␈αhigh␈αprecision␈αwith␈αv␈α␈ery␈αlittle␈αcomputation.
␈β⊃∨

␈β↓H␈↓ ↓$␈∧↓H↓$α
u
␈β↓J␈↓ ↓$␈∧↓J↓$Hα␈↓ α→␈∧↓Jα→Hα␈↓ ↔␈∧↓J↔Hα
␈β↓V␈↓ ¬v␈ε>Nu␈α␈meri␈α␈c␈α↓al␈α∞Ca␈α↓l␈α␈c␈α↓u␈α␈lu␈α␈s
␈β↓\␈↓ ↓D␈ε"134
␈βα⊃␈↓ ↓$␈∧α⊃↓$α
u
␈βαO␈↓ ↓H␈ε2Exercise
␈βαx␈↓ α␈ε$Pro␈α↓gram␈αthe␈α
analogo␈α↓us␈α
c␈α␈o␈α↓mputation␈α
of␈↓ ε"␈ε$l␈α␈n␈↓ ε;␈ε$(␈α↓2)
␈ββ'␈↓ ¬F␈ε$1␈↓ ε	␈ε$1␈↓ εK␈ε$1␈↓ π
␈ε$1␈↓ πP␈ε$1
␈ββ;␈↓ ∧≠␈ε$l␈α␈n␈↓ ∧4␈ε$(2␈α↓)␈↓ ∧`␈ε$=␈αλ1␈ε8␈αλ␈␈↓ ¬`␈ε$+␈↓ ε"␈ε8␈␈↓ εd␈ε$+␈↓ π'␈ε8␈␈↓ πb␈ε$.␈α¬.␈α∧.
␈ββL␈↓ ¬F␈∧βL¬Fα⊂␈↓ ε	␈∧βLε	α⊂␈↓ εK␈∧βLεKα⊂␈↓ π
␈∧βLπ
α⊂␈↓ πP␈∧βLπPα⊂
␈ββR␈↓ ¬F␈ε$2␈↓ ε	␈ε$3␈↓ εK␈ε$4␈↓ π
␈ε$5␈↓ πP␈ε$6
␈ββo␈↓ ¬␈ε$1␈↓ ¬U␈ε$1␈↓ ε&␈ε$1␈↓ λ␈ε$1
␈β∧∧␈↓ ∧`␈ε$=␈↓ ¬$␈ε$+␈↓ ¬v␈ε$+␈↓ εH␈ε$+␈↓ εm␈ε8↓␈α¬↓␈α∧↓␈↓ π≥␈ε$+␈↓ λS␈ε$+␈↓ λy␈ε$.␈α∧.␈α¬.
␈β∧∃␈↓ ¬␈∧∧∃¬α⊂␈↓ ¬M␈∧∧∃¬Mα∨␈↓ ε∨␈∧∧∃ε∨α∨␈↓ πE␈∧∧∃πEα↓∧
␈β∧~␈↓ ¬␈ε$2␈↓ ¬M␈ε$12␈↓ ε∨␈ε$20␈↓ πE␈ε$(␈α↓2␈ε*i␈ε8␈αε␈␈ε$␈απ1)2␈ε*i
␈β∧K␈↓ ↓H␈ε$wi␈α␈th
␈β∧a␈↓ εI␈ε,n
␈β∧b␈↓ ε8␈ε↓X
␈β∧s␈↓ π/␈ε$1
␈β¬π␈↓ ¬@␈ε*S␈↓ ¬b␈ε$(␈ε*n␈ε$)␈αλ=
␈β¬⊂␈↓ ¬R␈ε&0
␈β¬_␈↓ εu␈∧¬_εuα↓∧
␈β¬≡␈↓ εu␈ε$(2␈ε*i␈ε8␈απ␈␈ε$␈αε1)␈α↓2␈ε*i
␈β¬7␈↓ ε9␈ε,i␈ε&␈α␈=␈α↓1
␈β¬a␈↓ ↓H␈ε$up␈α
to␈↓ α→␈ε*S␈↓ α;␈ε$(5).␈α∞Pri␈α␈n␈α␈t␈αout␈α
each␈↓ ∧@␈ε*S␈↓ ∧`␈ε$(5),␈α
and␈αi␈α␈ts␈α
di{e␈α␈renc␈α␈e␈α
fro␈α↓m␈↓ πM␈ε$ln␈↓ πg␈ε$(2)␈α↓.
␈β¬j␈↓ α,␈ε&4
␈β¬k␈↓ ∧R␈ε,j
␈βε/␈↓ α␈ε"W␈α⎇e␈αcould␈αcalculate␈αan␈αin␈α␈tegral␈αin␈αa␈αsimilar␈αw␈α␈a␈α␈y.␈α⊂W␈α⎇e␈αcan␈αappro␈α␈ximate
␈βεv␈↓ ε2␈ε↓Z
␈βε|␈↓ εV␈ε%1
␈βπ"␈↓ ¬h␈ε(I␈↓ ε∧␈ε"=␈↓ εf␈ε(f␈↓ ε|␈ε"(␈ε(x␈ε")␈ε(␈αεdx
␈βπE␈↓ εF␈ε%0
␈βλε␈↓ ↓H␈ε"by
␈βλ(␈↓ πt␈ε%1
␈βλ+␈↓ ε9␈ε+n␈ε9␈α␈␈␈ε%1
␈βλ,␈↓ π0␈ε(i␈ε"␈αλ+
␈βλ-␈↓ π∃␈ε↓␈ ␈↓ λ␈ε↓!
␈βλ/␈↓ ε?␈ε↓X
␈βλ9␈↓ ε≠␈ε"1
␈βλ=␈↓ πt␈ε%2
␈βλ@␈↓ πt␈∧λ@πtα⊂
␈βλQ␈↓ ¬∂␈ε(I␈↓ ¬/␈ε"(␈ε(n␈ε")␈α
=␈↓ π␈ε(f␈↓ λ#␈ε".
␈βλ↑␈↓ ¬≡␈ε%0
␈βλe␈↓ ε→␈∧λeε→α⊗␈↓ π0␈∧λeπ0αX
␈βλk␈↓ ε→␈ε(n␈↓ πQ␈ε(n
␈β	α␈↓ ε=␈ε+i␈ε%␈α␈=0
␈β	8␈↓ ε%␈ε(a␈↓ π
␈ε(b␈↓ πl␈ε(c
␈β	P␈↓ ∧M␈ε(I␈↓ ∧l␈ε"(␈ε(n␈ε")␈α
=␈↓ ¬R␈ε(I␈↓ ¬l␈ε"+␈↓ εN␈ε"+␈↓ π1␈ε"+␈↓ λ∪␈ε"+␈↓ λ?␈ε6↓␈αε↓␈αε↓
␈β	\␈↓ ∧\␈ε%0
␈β	d␈↓ ε≤␈∧	dε≤α'␈↓ ε}␈∧	dε}α'␈↓ πa␈∧	dπaα'
␈β	f␈↓ ε1␈ε%2␈↓ π∀␈ε%4␈↓ πw␈ε%6
␈β	i␈↓ ε≤␈ε(n␈↓ ε}␈ε(n␈↓ πa␈ε(n
␈β
∨␈↓ α␈ε"See␈α⊂if␈α⊂y␈α␈ou␈α⊂can␈α⊂w␈α␈ork␈α⊂out␈α⊂an␈α⊂analogous␈α⊂meth␈α↓od␈α⊂for␈α⊂computing␈α⊂the␈α∂in␈α␈tegral␈α⊂ac-
␈β
J␈↓ ↓H␈ε"curately␈α
with␈α↓out␈α
to␈α↓o␈α∞man␈α␈y␈α
ev␈α}aluations␈α
of␈↓ εh␈ε(f␈↓ ε⎇␈ε".␈α∀(Idea:␈α∂try␈α
eliminating␈ε(␈α
a␈ε"␈α∞bet␈α␈w␈α␈een␈↓ '␈ε(I␈↓ G␈ε"(␈ε(n␈ε"␈α␈)
␈β
W␈↓ 6␈ε%0
␈β
u␈↓ ↓H␈ε"and␈↓ α∞␈ε(I␈↓ α.␈ε"(3␈ε(n␈ε").␈α∩Notice␈α
that␈α
the␈αsum␈α
in␈↓ εα␈ε(I␈↓ ε!␈ε"(␈ε(n␈ε")␈α
is␈α
a␈αpart␈α
of␈α
the␈α
sum␈α
in␈↓ 	O␈ε(I␈↓ 	o␈ε"(3␈ε(n␈ε").)␈α∩T␈α⎇ry␈α
it␈αout
␈βα␈↓ α≥␈ε%0␈↓ ε⊃␈ε%0␈↓ 	↑␈ε%0
␈β!␈↓ ↓H␈ε"on
␈β6␈↓ ¬∩␈ε↓Z
␈β;␈↓ ¬6␈ε%1
␈βU␈↓ ε∧␈ε'2
␈βZ␈↓ ¬V␈ε9␈␈↓ ¬s␈ε+x␈↓ ε∩␈ε%/2
␈βb␈↓ ¬F␈ε(e␈↓ ε8␈ε(dx␈↓ εh␈ε"=␈α
0.3413␈↓ πz␈ε".␈αε.␈αε.
␈β∧␈↓ ¬&␈ε%0
␈β⊃_

␈β↓H␈↓ ↓$␈∧↓H↓$α
u
␈β↓J␈↓ ↓$␈∧↓J↓$Hα␈↓ "␈∧↓J"Hα␈↓ ↔␈∧↓J↔Hα
␈β↓V␈↓ ¬r␈ε>Index
␈β↓\␈↓ B␈ε"135
␈βα⊃␈↓ ↓$␈∧α⊃↓$α
u
␈βαR␈↓ ↓H␈ε>Ind␈α␈e␈α↓x␈α␈.
␈ββ∃␈↓ ε2␈ε2Index
␈ββ\␈↓ α␈ε"program␈α↑␈αPage␈α3
␈β∧λ␈↓ α␈ε"declarations␈α↑␈αPage␈α3
␈β∧3␈↓ α␈ε"commands␈α↑␈αPage␈α3
␈β∧←␈↓ α␈ε"Declarations␈α↑␈αPage␈α3
␈β¬␈↓ α␈ε"v␈α}ariables␈α↑␈αPage␈α3
␈β¬7␈↓ α␈ε"W␈α⎇rite␈α↑␈αPage␈α3
␈β¬c␈↓ α␈ε"quotation␈αmarks␈α↑␈αPage␈α4
␈βε∂␈↓ α␈ε"operands␈α↑␈αPage␈α5
␈βε;␈↓ α␈ε"Iteration␈α↑␈αPage␈α6
␈βεg␈↓ α␈ε"iterativ␈α␈e␈αclause␈α↑␈αPage␈α6
␈βπ∪␈↓ α␈ε"iterativ␈α␈e␈αcommand␈α↑␈αPage␈α7
␈βπ?␈↓ α␈ε"F␈α␈OR␈α↑␈αPage␈α7
␈βπk␈↓ α␈ε"TO␈α↑␈αPage␈α7
␈βλ↔␈↓ α␈ε"DO␈α↑␈αPage␈α7
␈βλC␈↓ α␈ε"Inden␈α␈t␈α↑␈αPage␈α7
␈βλo␈↓ α␈ε"Rule␈α↑␈αPage␈α7
␈β	≠␈↓ α␈ε"iteration␈αv␈α}ariable␈α↑␈αPage␈α7
␈β	G␈↓ α␈ε"Rule␈α↑␈αPage␈α7
␈β	s␈↓ α␈ε"Nested␈αIteration␈α↑␈αPage␈α9
␈β
∨␈↓ α␈ε"substitution␈α↑␈αPage␈α9
␈β
K␈↓ α␈ε"WRITE␈α↑␈αPage␈α12
␈β
w␈↓ α␈ε"prin␈α␈ting␈α↑␈αPage␈α12
␈β#␈↓ α␈ε"compund␈αstatemen␈α␈ts␈α↑␈αPage␈α13
␈βO␈↓ α␈ε"compound␈αstatemen␈α␈t␈α↑␈αPage␈α14
␈β{␈↓ αw␈ε"↑␈αPage␈α14
␈β⎇␈↓ α␈ε5BEGIN
␈β'␈↓ αQ␈ε"↑␈αPage␈α14
␈β)␈↓ α␈ε5END
␈βS␈↓ α␈ε"Rule␈α↑␈αPage␈α14
␈β␈␈↓ α␈ε"Division␈α↑␈αPage␈α16
␈β
+␈↓ α␈ε"De|nitions␈α↑␈αPage␈α19
␈β
W␈↓ α␈ε"syn␈α␈tax␈α↑␈αPage␈α19
␈β∞β␈↓ α␈ε"seman␈α␈tics␈α↑␈αPage␈α19
␈β∞/␈↓ α␈ε"pragmatics␈α↑␈αPage␈α19
␈β∞[␈↓ α␈ε"constan␈α␈ts␈α↑␈αPage␈α19
␈β∂π␈↓ α␈ε"iden␈α␈ti|ers␈α↑␈αPage␈α19
␈β∂3␈↓ α␈ε"v␈α}ariables␈α↑␈αPage␈α19
␈β⊃∨

␈β↓H␈↓ ↓$␈∧↓H↓$α
u
␈β↓J␈↓ ↓$␈∧↓J↓$Hα␈↓ α→␈∧↓Jα→Hα␈↓ ↔␈∧↓J↔Hα
␈β↓V␈↓ εm␈ε>Index
␈β↓\␈↓ ↓D␈ε"136
␈βα⊃␈↓ ↓$␈∧α⊃↓$α
u
␈βαO␈↓ α␈ε"V␈α{AR␈αdeclaration␈α↑␈αPage␈α19
␈βα{␈↓ α␈ε"expressions␈α↑␈αPage␈α19
␈ββ'␈↓ α␈ε"commands␈α↑␈αPage␈α19
␈ββS␈↓ α␈ε"script␈αletters␈α↑␈αPage␈α20
␈β∧␈↓ α␈ε"WRITE␈α↑␈αPage␈α21
␈β∧,␈↓ α␈ε"expression␈α↑␈αPage␈α21
␈β∧X␈↓ α␈ε"DIV␈α↑␈αPage␈α21
␈β¬∧␈↓ α␈ε"ABS␈α↑␈αPage␈α22
␈β¬0␈↓ α␈ε"SQR␈α↑␈αPage␈α22
␈β¬]␈↓ α␈ε"SIN␈α↑␈αPage␈α22
␈βε	␈↓ α␈ε"COS␈α↑␈αPage␈α22
␈βε5␈↓ α␈ε"LN␈α↑␈αPage␈α22
␈βεa␈↓ α␈ε"EXP␈α↑␈αPage␈α22
␈βπ∞␈↓ α␈ε"SQR␈α⎇T␈α↑␈αPage␈α22
␈βπ:␈↓ α␈ε"AR␈α␈CT␈α⎇AN␈α↑␈αPage␈α22
␈βπf␈↓ α␈ε"string␈αexpression␈α↑␈αPage␈α22
␈βλ∩␈↓ α␈ε"primitiv␈α␈es␈α↑␈αPage␈α22
␈βλ>␈↓ α␈ε"program␈α↑␈αPage␈α22
␈βλk␈↓ α␈ε"heading␈α↑␈αPage␈α22
␈β	↔␈↓ α␈ε"block␈α↑␈αPage␈α22
␈β	C␈↓ α␈ε"period␈α↑␈αPage␈α22
␈β	o␈↓ α␈ε"INPUT␈α↑␈αPage␈α23
␈β
≤␈↓ α␈ε"OUTPUT␈α↑␈αPage␈α23
␈β
H␈↓ α␈ε"block␈α↑␈αPage␈α23
␈β
t␈↓ α␈ε"BEGIN␈α↑␈αPage␈α23
␈β ␈↓ α␈ε"END␈α↑␈αPage␈α23
␈βL␈↓ α␈ε"iden␈α␈ti|er␈α↑␈αPage␈α23
␈βy␈↓ α␈ε"reserv␈α␈ed␈αw␈α␈ords␈α↑␈αPage␈α23
␈β%␈↓ α␈ε"declaration␈α↑␈αPage␈α23
␈βQ␈↓ α␈ε"V␈α{AR␈α↑␈αPage␈α23
␈β⎇␈↓ α␈ε"INTEGER␈α↑␈αPage␈α23
␈β
)␈↓ α␈ε"REAL␈α↑␈αPage␈α23
␈β
V␈↓ α␈ε"v␈α}ariable␈α↑␈αPage␈α24
␈β∞α␈↓ α␈ε"spacing␈α↑␈αPage␈α24
␈β∞.␈↓ α␈ε"Prin␈α␈ting␈αF␈α⎇ormat␈α↑␈αPage␈α25
␈β∞Z␈↓ α␈ε"in␈α␈teger␈αv␈α}alues␈α↑␈αPage␈α25
␈β∂π␈↓ α␈ε"string␈αconstan␈α␈ts␈α↑␈αPage␈α25
␈β∂3␈↓ α␈ε"characters␈α↑␈αPage␈α25
␈β⊃∨

␈β↓H␈↓ ↓$␈∧↓H↓$α
u
␈β↓J␈↓ ↓$␈∧↓J↓$Hα␈↓ "␈∧↓J"Hα␈↓ ↔␈∧↓J↔Hα
␈β↓V␈↓ ¬r␈ε>Index
␈β↓\␈↓ B␈ε"137
␈βα⊃␈↓ ↓$␈∧α⊃↓$α
u
␈βαO␈↓ α␈ε"strings␈α↑␈αPage␈α25
␈βα{␈↓ α␈ε"Program␈αDecomposition␈α↑␈αPage␈α28
␈ββ'␈↓ α␈ε"decomposition␈α↑␈αPage␈α32
␈ββS␈↓ α␈ε"Commen␈α␈ts␈αin␈αPrograms␈α↑␈αPage␈α36
␈β∧␈↓ α␈ε"errors␈α↑␈αPage␈α37
␈β∧,␈↓ α␈ε"Storage␈αV␈α⎇ariables␈α↑␈αPage␈α38
␈β∧X␈↓ α␈ε"Assignmen␈α␈t␈α↑␈αPage␈α38
␈β¬∧␈↓ α␈ε"storage␈αv␈α}ariables␈α↑␈αPage␈α38
␈β¬0␈↓ α␈ε"declaration␈α↑␈αPage␈α39
␈β¬]␈↓ α␈ε"REAL␈α↑␈αPage␈α39
␈βε	␈↓ α␈ε"INTEGER␈α↑␈αPage␈α39
␈βε5␈↓ α␈ε"assignmen␈α␈t␈α↑␈αPage␈α39
␈βεa␈↓ α␈ε"storage␈αv␈α}ariables␈α↑␈αPage␈α40
␈βπ∞␈↓ α␈ε"t␈α␈ype␈α↑␈αPage␈α41
␈βπ:␈↓ α␈ε"INTEGER␈α↑␈αPage␈α41
␈βπf␈↓ α␈ε"REAL␈α↑␈αPage␈α41
␈βλ∩␈↓ α␈ε"V␈α{AR␈α↑␈αPage␈α41
␈βλ>␈↓ α␈ε"Rule␈α↑␈αPage␈α41
␈βλk␈↓ α␈ε"Reading␈α↑␈αPage␈α44
␈β	↔␈↓ α␈ε"prompting␈α↑␈αPage␈α45
␈β	C␈↓ α␈ε"WRITELN␈α↑␈αPage␈α45
␈β	o␈↓ α␈ε"ech␈α↓o␈α↑␈αPage␈α46
␈β
≤␈↓ α␈ε"Rule␈α↑␈αPage␈α46
␈β
H␈↓ α␈ε"L␈α␈OTS␈α↑␈αPage␈α52
␈β
t␈↓ α␈ε"Conditional␈αCommands␈α↑␈αPage␈α54
␈β ␈↓ α␈ε"conditions␈α↑␈αPage␈α54
␈βL␈↓ α␈ε"Bo␈α↓olean␈αexpressions␈α↑␈αPage␈α54
␈βy␈↓ α␈ε"ELSE␈α↑␈αPage␈α58
␈β%␈↓ α␈ε"IF␈α↑␈αPage␈α58
␈βQ␈↓ α␈ε"Logical␈αConnectiv␈α␈es␈α↑␈αPage␈α62
␈β⎇␈↓ α␈ε"Bo␈α↓olean␈αexpressions␈α↑␈αPage␈α62
␈β
)␈↓ α␈ε"Rule␈α↑␈αPage␈α65
␈β
V␈↓ α␈ε"Design␈α↑␈αPage␈α66
␈β∞α␈↓ α␈ε"Iterativ␈α␈e␈αCommands␈α↑␈αPage␈α66
␈β∞.␈↓ α␈ε"Fibonacci␈αsequence␈α↑␈αPage␈α66
␈β∞Z␈↓ α␈ε"Correct␈αPrograms␈α↑␈αPage␈α70
␈β∂π␈↓ α␈ε"Inde|nite␈αIteration␈α↑␈αPage␈α71
␈β∂3␈↓ α␈ε"sen␈α␈tinel␈α↑␈αPage␈α71
␈β⊃∨

␈β↓H␈↓ ↓$␈∧↓H↓$α
u
␈β↓J␈↓ ↓$␈∧↓J↓$Hα␈↓ α→␈∧↓Jα→Hα␈↓ ↔␈∧↓J↔Hα
␈β↓V␈↓ εm␈ε>Index
␈β↓\␈↓ ↓D␈ε"138
␈βα⊃␈↓ ↓$␈∧α⊃↓$α
u
␈βαO␈↓ α␈ε"de|nite␈αiteration␈α↑␈αPage␈α71
␈βαz␈↓ α␈ε"F␈α␈OR␈α↑␈αPage␈α71
␈ββ%␈↓ α␈ε"inde|nite␈αiteration␈α↑␈αPage␈α71
␈ββP␈↓ α␈ε"WHILE␈α↑␈αPage␈α71
␈ββ|␈↓ α␈ε"Rule␈α↑␈αPage␈α72
␈β∧'␈↓ α␈ε"Program␈αF␈α⎇ormat␈α↑␈αPage␈α74
␈β∧R␈↓ α␈ε"DIV␈α↑␈αPage␈α77
␈β∧⎇␈↓ α␈ε"MOD␈α↑␈αPage␈α77
␈β¬(␈↓ αQ␈ε"↑␈αPage␈α79
␈β¬*␈↓ α␈ε5ABS
␈β¬T␈↓ α␈ε"absolute␈αv␈α}alue␈α↑␈αPage␈α79
␈β¬␈␈↓ α␈ε"magnitude␈α↑␈αPage␈α79
␈βε*␈↓ α␈ε"Arra␈α␈ys␈α↑␈αPage␈α82
␈βεU␈↓ α␈ε"arra␈α␈y␈α↑␈αPage␈α82
␈βπ␈↓ α␈ε"arra␈α␈y␈αdeclaration␈α↑␈αPage␈α82
␈βπ,␈↓ α␈ε"subscript␈α↑␈αPage␈α83
␈βπW␈↓ α␈ε"Desk␈αChecking␈α↑␈αPage␈α85
␈βλα␈↓ α␈ε"Rule␈α↑␈αPage␈α88
␈βλ-␈↓ α␈ε"Diagn␈α↓osing␈αIncorrect␈αResults␈α↑␈αPage␈α89
␈βλX␈↓ α␈ε"DEBUG:=␈α1␈α↑␈αPage␈α89
␈β	∧␈↓ α␈ε"DEBUG:=␈α0␈α↑␈αPage␈α89
␈β	/␈↓ α␈ε"Redundan␈α␈t␈αE{ort␈α↑␈αPage␈α97
␈β	Z␈↓ α␈ε"snapsh␈α↓ots␈α↑␈αPage␈α99
␈β
¬␈↓ α␈ε"Appendices␈α↑␈αPage␈α117
␈β
0␈↓ α␈ε"File␈αProtection␈α↑␈αPage␈α120
␈β
\␈↓ α␈ε"More␈αTOPS-20␈αCommands␈α↑␈αPage␈α121
␈βπ␈↓ α␈ε"In␈α␈tegers␈α↑␈αPage␈α125
␈β2␈↓ α␈ε"Real␈αNum␈α␈bers␈α↑␈αPage␈α126
␈β]␈↓ α␈ε"Pascal␈αArithmetic␈α↑␈αPage␈α130
␈β⊃_

␈β↓H␈↓ ↓$␈∧↓H↓$α
u
␈β↓J␈↓ ↓$␈∧↓J↓$Hα␈↓ "␈∧↓J"Hα␈↓ ↔␈∧↓J↔Hα
␈β↓V␈↓ ¬∪␈ε>Fix␈α␈up␈α∞Not␈α␈a␈α↓ti␈α␈on␈α␈s
␈β↓\␈↓ B␈ε"139
␈βα⊃␈↓ ↓$␈∧α⊃↓$α
u
␈βαU␈↓ ↓H␈ε>Fi␈α␈xup␈α∞No␈α␈tatio␈α␈ns.
␈ββ_␈↓ ¬\␈ε2Fixup␈αNotations
␈ββ↑␈↓ α␈ε"Page␈α9.␈α⊂R␈α{WF->R␈α{WF␈αelaborate␈αon␈α\The␈αsame␈αe{ect␈α..."
␈β∧
␈↓ α␈ε"Page␈α14.␈α∂DPB->R␈α{WF:␈αI␈α
rewrote␈αthis␈α
rule␈α
to␈αeliminate␈α
the␈αTEX␈α
problem␈αof␈α
code
␈β∧5␈↓ ↓H␈ε"inside␈αbo␈α␈xes.
␈β∧a␈↓ α␈ε"Page␈α16.␈α⊂R␈α{WF==>Don't␈αkn␈α↓o␈α␈w␈αh␈α↓o␈α␈w␈αto␈αdo␈αthis␈αwith␈αTEX.␈αFR␈α␈G
␈β¬
␈↓ α␈ε"Page␈α18.␈α⊂FINAL␈α␈CHECK-mak␈α␈e␈↓ ε␈ε"sure␈↓ εL␈ε"that␈↓ π~␈ε"all␈↓ πL␈ε"of␈↓ πv␈ε"this␈↓ λ<␈ε"exercise␈↓ 	B␈ε"is␈↓ 	f␈ε"on␈↓ 
_␈ε"one␈↓ 
Z␈ε"page.
␈β¬9␈↓ α␈ε"Page␈α25.␈α⊂R␈α{WF==>R␈α{WF␈αRedo
␈β¬e␈↓ α␈ε"Page␈α25.␈α⊂R␈α{WF==>Correct␈αthese.
␈βε⊃␈↓ α␈ε"Page␈α31.␈α⊂FINAL␈α␈CHECK:␈αThis␈αeject␈αput␈αin␈αto␈αeliminate␈αa␈αwido␈α␈w.
␈βε=␈↓ α␈ε"Page␈α32.␈α⊂FINAL␈α␈CHECK:␈αCheck␈αunconditional␈αeject.
␈βεi␈↓ α␈ε"Page␈α39.␈α⊂R␈α{WF==>Cann␈α↓ot␈↓ ¬b␈ε"join␈↓ ε*␈ε"to␈↓ εV␈ε"one␈↓ π_␈ε"line.Line␈↓ λ,␈ε"w␈α␈ould␈↓ 	∃␈ε"to␈α↓o␈↓ 	T␈ε"long␈↓ 
"␈ε"for␈↓ 
Z␈ε"TEX
␈βπ∃␈↓ α␈ε"Page␈α41.␈α⊂FINAL␈α␈CHECK:␈αeject␈αinserted␈αto␈αeliminate␈αwido␈α␈w␈αin␈α9/18␈αv␈α␈ersion.
␈βπA␈↓ α␈ε"Page␈α46.␈α⊂FINAL␈α␈CHECK:␈αeject␈αinserted␈αto␈αeliminate␈αwido␈α␈w␈α9/18.
␈βπm␈↓ α␈ε"Page␈α48.␈α⊂R␈α{WF==>␈αend␈αof␈αde|nite␈αiteration?
␈βλ→␈↓ α␈ε"Page␈α49.␈α⊂Professor␈αFlo␈α␈yd␈αto␈αrewrite␈αthis␈αpart␈αlater
␈βλD␈↓ α␈ε"Page␈α58.␈α⊂FINAL␈α␈CHECK:␈αeject␈αinserted␈αto␈αeliminate␈αwido␈α␈w␈α9/18.
␈βλp␈↓ α␈ε"Page␈α
58.␈α∂DPB␈α
==>␈α
R␈α{WF:␈α
The␈α
-␈α
signs␈α
in␈α
the␈α
Quad␈α
eqn␈α
prog␈α
are␈α
in␈α
math␈α	m␈α↓ode.
␈β	≤␈↓ ↓H␈ε"Wh␈α␈y?
␈β	H␈↓ α␈ε"Page␈α75.␈α⊂FINAL␈α␈CHECK:␈αExplicit␈αeject␈αhere.
␈β	t␈↓ α␈ε"Page␈α85.␈α⊂BYHAND-dra␈α␈w␈αlines␈αto␈αthe␈αle$␈αof␈αthe␈αcode␈αas␈αsuggested␈αin␈αtext.
␈β
∨␈↓ α␈ε"Page␈α87.␈α⊂BYHAND-dra␈α␈w␈αcircles␈αaround␈αthe␈αblocks␈αas␈αsuggested␈αin␈αtext.
␈β
K␈↓ α␈ε"Page␈α91.␈α⊂BYHAND-Insert␈α|gure␈αhere.
␈β
w␈↓ α␈ε"Page␈α92.␈α⊂BYHAND-Insert␈α|gure␈αhere.
␈β#␈↓ α␈ε"Page␈α93.␈α⊂BYHAND-Insert␈α|gure␈αhere.
␈βO␈↓ α␈ε"Page␈α94.␈α⊂BYHAND-Insert␈α|gure␈αhere.
␈β{␈↓ α␈ε"Page␈α97.␈α⊂See␈αREJECT.TEX[105,CSD]␈αfor␈αold␈αtext.
␈β'␈↓ α␈ε"Page␈α97.␈α⊂BYHAND-␈αcircle␈αthe␈αappropriate␈αparts␈αof␈αeach␈αsummand.
␈βS␈↓ α␈ε"Page␈α97.␈α⊂BYHAND-␈αInsert␈αthe␈αappropriate␈αarro␈α␈ws.
␈β␈␈↓ α␈ε"Page␈α109.␈α⊂FR␈α␈G==>check␈↓ ¬S␈ε"to␈↓ ¬␈␈ε"see␈↓ ε9␈ε"wh␈α␈y␈↓ π¬␈ε"belo␈α␈w␈↓ πj␈ε"line␈↓ λ.␈ε"is␈↓ λR␈ε"72␈↓ 	α␈ε"pts␈↓ 	>␈ε"o␈α␈v␈α␈er⎇o␈α␈w
␈β
+␈↓ α␈ε"Page␈α122.␈α⊂R␈α{WF-In␈αy␈α␈our␈αn␈α↓otes␈αy␈α␈ou␈αwrote␈α"Check␈α␈out??????==>"␈αthe␈αsection␈αT␈α⎇o
␈β
W␈↓ α␈ε"Page␈α122.␈α⊂change␈αthe␈αn␈α␈um␈α␈ber␈αof␈αgenerations␈αk␈α␈ept␈αin␈αy␈α␈our␈α|les:
␈β∞β␈↓ α␈ε"Page␈α122.␈α⊂FINAL␈α␈CHECK␈α-␈αsee␈αif␈αhelp␈αm␈α↓odify␈αlo␈α↓oks␈αrigh␈α␈t.
␈β∞/␈↓ α␈ε"Page␈α123.␈α⊂==>R␈α{WF-can't␈αput␈αall␈αon␈αone␈αline␈αbecause␈αof␈αmacro
␈β∞[␈↓ α␈ε"Page␈α123.␈α⊂Ho␈α␈w␈αto␈αprin␈α␈t␈αsuppressing␈αcon␈α␈trol␈αcharacters?Check␈αat␈αL␈α␈OTS
␈β∂π␈↓ α␈ε"Page␈α131.␈α⊂==>R␈α{WF␈α-␈αIs␈αthis␈αalw␈α␈a␈α␈ys␈αtrue-check␈αout
␈β∂3␈↓ α␈ε"Page␈α133.␈α⊂DPB->R␈α{WF:␈αcheck␈αforum␈α␈ulae
␈β⊃∨

␈β↓H␈↓ ↓$␈∧↓H↓$α
u
␈β↓J␈↓ ↓$␈∧↓J↓$Hα␈↓ α→␈∧↓Jα→Hα␈↓ ↔␈∧↓J↔Hα
␈β↓V␈↓ ε∞␈ε>Fix␈α␈up␈α∞Not␈α␈a␈α↓ti␈α␈on␈α␈s
␈β↓\␈↓ ↓D␈ε"140
␈βα⊃␈↓ ↓$␈∧α⊃↓$α
u
␈βαO␈↓ α␈ε"Page␈α134.␈α⊂DPB->R␈α{WF:␈αcheck␈α"terms␈αin"␈αin␈αboth␈αplaces.
␈β⊃_/FONT#1=cmathx[XGP,SYS]=∩∪ !XZz{|⎇⎇/FONT#2=ms25[XGP,SYS]=JJ/FONT#3=nons[XGP,SYS]=ABCEKPScess/FONT#21=cmtt9[XGP,SYS]=β∂!"'()*+,-./0123456789:;<=>?ABCDEFGHIJKLMNOPQRSTUVWXYZ[]`abcdefghijklmnopqrstuvwxyzz/FONT#22=cmtt8[XGP,SYS]=$(),-.0123456789:=ACDEFILNORSTWW/FONT#34=cmr10[XGP,SYS]=!"$%'()*+,-./0123456789:;<=>?ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]↑←`abcdefghijklmnopqrstuvwxyz{|⎇}}/FONT#35=cmr9[XGP,SYS]=()+,-./01245<=>cdeghilmnoprstuwyy/FONT#36=cmr8[XGP,SYS]=$'()+,-./0123456789:;=?ABCDEFHILMNOPRSTUVWYabcdefghiklmnopqrstuvwxyz{|}}/FONT#37=cmr7[XGP,SYS]=()+./0123456789==/FONT#38=cmr6[XGP,SYS]=,012345==/FONT#39=cmr5[XGP,SYS]=12688/FONT#40=cmi10[XGP,SYS]=→ABCDEFGHILMNPQRSTWXabcdefghijklmnoprstuvwxyy/FONT#41=cmi9[XGP,SYS]=DHSff/FONT#42=cmi8[XGP,SYS]=→ABCFLMNSXfinn/FONT#43=cmi7[XGP,SYS]=Iehijmntxx/FONT#44=cmi6[XGP,SYS]=JLNbhijmntt/FONT#45=cmi5[XGP,SYS]=Nii/FONT#47=cms10[XGP,SYS]="$'(),-.01248;<>ABCDEFILMNOPSTUVW\abcdefghijklmnopqrstuvwxyz{|⎇⎇/FONT#49=cms8[XGP,SYS]=0124689<>abcdefghilmnoprstuvwxyz{{/FONT#50=cmb10[XGP,SYS]=",.:ACDEFGHILNPRSTVW\abcdefghilmnoprstuvwxy||/FONT#52=cmb8[XGP,SYS]=:HWaginrtt/FONT#53=cmtt[XGP,SYS]=∂$'()*+,-./0123456789:;<=>?ABCDEFGHIJKLMNOPQRSTUVWXYZ[]`abcdefghijklmnoprstuvwxyy/FONT#54=cmsy10[XGP,SYS]=↓αε∂∀∃→≤")ABCDEIKNOPTVjpt||/FONT#55=cmsy9[XGP,SYS]=∃"CDEINTVtt/FONT#56=cmsy8[XGP,SYS]=↓∂EE/FONT#57=cmsy7[XGP,SYS]=11/FONT#58=cmsy6[XGP,SYS]=/FONT#62=cmss12[XGP,SYS]=-.02ABCDEFILMNOPRSTVXabcdefghiklmnopqrstuvxy{||